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)
首先,我想你不需要private EmpPrmryKey compositeId;在 Employee 类中。
我使用相同的实体创建了本地项目,并且您提供的相同查询有效(它返回了预期结果)。因此,如果结果仍然为空,那么您可以检查您是否正在查找正确的表或数据库。