【问题标题】:Hibernate search get a row by a field value休眠搜索通过字段值获取一行
【发布时间】:2016-07-17 00:57:26
【问题描述】:

我是 hibernate 和 Spring 的新手。

我的学生类有:

studentId;  
firstName;  
lastName;   
yearLevel;
getters/setters
...etc

我想按名字或姓氏搜索学生。 于是我在StudentDaoImpl.java中尝试了这个方法:

@Override
public Student getStudentByLastName(String lastName) {
    return (Student)session.getIdentifier(lastName);
}  

而且它不起作用,唯一起作用的是通过 studentId 搜索:

public Student getStudentByLastName(int studentId) {

    return (Student)sessionFactory.getCurrentSession().get(Student.class,studentId);
}

有没有办法通过搜索像 lastName 或 firstName 这样的字段值来获取 Student 对象?

【问题讨论】:

    标签: mysql spring hibernate jakarta-ee web-applications


    【解决方案1】:

    我认为您应该在命名变量时使用 camelCase(firstName 而不是 firstname 等)。 http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-beanname

    Bean 命名约定

    约定是使用标准的Java约定,例如 命名 bean 时的字段名称。也就是说,bean 名称以 小写字母,从那时起都是驼峰式的。这样的例子 名称将是(不带引号)'accountManager'、'accountService'、 'userDao'、'loginController' 等等。

    一致地命名 bean 使您的配置更易于阅读和 了解,如果您使用的是 Spring AOP,它在以下情况下会有很大帮助 将建议应用于一组按名称相关的 bean。

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多