我有以下查询,试图获取使用@Embeddable ID类的一部分Employee实体对象:JPA JPQL查询返回null
public List<EmployeeTask> getEmployeeById(){
return em.createQuery("SELECT a FROM EmployeeTask a where a.id.empcode = '5091'").getResultList();
上面的代码我的JSF页面上的返回null。但是当我改变这个:
public List<EmployeeTask> getEmployeeById(){
return em.createQuery("SELECT a FROM EmployeeTask a where a.id.empcode like '5091'").getResultList();
它再次返回null。但是,当我尝试:
public List<EmployeeTask> getEmployeeById(){
return em.createQuery("SELECT a FROM EmployeeTask a where a.id.empcode like '5091%'").getResultList();
}
返回预期的实体对象的内容...任何人都知道为什么出现这种情况?
有关我需要执行的更多详细信息:EmployeeTask表包含员工执行的所有任务。 EmployeeTaskPK是字符串empcode,字符串任务代码,起始日期。我想在我的实体实例中获取给定empcode的所有记录,并将它们列在jsf数据表中。
谢谢
检查您的db:empcode列是一个char大小为4的字符吗?也许有空格 – Zeromus
empcode是NCHAR(8)。非常感谢。我想如果我将它定义在我的实体的属性@Column它将工作 – Bonzay
不行columnDefinition =“NCHAR(8)”不起作用。任何想法如何在jpa中使用nchar数据类型? – Bonzay