Hibernate 标准返回空列表,但数据存在。使用注释

Sus*_*sie 5 java database annotations hibernate

我不明白为什么这个查询没有给我任何结果。我知道数据存在于表中。results执行查询时列表变量“ ”为空。我是否正确实现了复合键?

我什至尝试使用@EmbeddedId来完成此操作,但返回的列表仍然是空的。

        Session sess = HibernateUtil.getSession();
        Criteria criteria = sess.createCriteria(Employee.class);
        criteria.add(Restrictions.eq("employeeId", 255847208));
        criteria.add(Restrictions.eq("serialId", 461));
        List<Employee> results = criteria.list();
Run Code Online (Sandbox Code Playgroud)

主键类

public class EmpPrmryKey implements Serializable {
        private Integer employeeId;
        private Integer serialId;
        //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

POJO 映射到表:

@Entity
@IdClass(EmpPrmryKey.class)
@Table(name = "EMPLOYEE")
public class Employee{

    private EmpPrmryKey compositeId;

    @Id
    @Column(name = "employee_id")
    private Integer employeeId; 

    @Id
    @Column(name = "serial_id")
    private Integer serialId;

    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

Nik*_*loz 0

首先,我想你不需要private EmpPrmryKey compositeId;在 Employee 类中。

我使用相同的实体创建了本地项目,并且您提供的相同查询有效(它返回了预期结果)。因此,如果结果仍然为空,那么您可以检查您是否正在查找正确的表或数据库。