Jakarta ee 如何使用嵌入式id创建JPQL选择MAX?
我使用的是Eclipselink(JPA)+GlassFish v3.1.2+NetBeans 7.1.2 我有一个具有复合主键的表:Jakarta ee 如何使用嵌入式id创建JPQL选择MAX?,jakarta-ee,jpa,eclipselink,jpql,composite-key,Jakarta Ee,Jpa,Eclipselink,Jpql,Composite Key,我使用的是Eclipselink(JPA)+GlassFish v3.1.2+NetBeans 7.1.2 我有一个具有复合主键的表: table (Enterpirse) ---------------------- |PK,FK idCompany | nvarchar |PK idEnterprisecode | nvarchar | | |____________________| @Entity public class IdMtoEnt
table (Enterpirse)
----------------------
|PK,FK idCompany | nvarchar
|PK idEnterprisecode | nvarchar
| |
|____________________|
@Entity
public class IdMtoEnterprise {
@EmbeddedId
protected IdMtoEnterprisePK idMtoEnterprisePK
//getter and setter are omitted for clear
}
@Embeddable
public class IdMtoEnterprisePK {
@Column(name = "id_mto_company")
private String idMtoCompany;
@Column(name = "id_mto_enterprise_code")
private String idMtoEnterpriseCode;
}
现在。。如何用JPQL编写SELECT MAX(带EmbeddedId)子句
这次失败
Select MAX(e.IdMtoEnterprisePK.idMtoEnterpriseCode) From IdMtoEnterprise e
原因:java.lang.IllegalArgumentException:在EntityManager中创建查询时发生异常:
异常描述:编译查询[Select MAX(e.IdMtoEnterprisePK.idMtoEnterpriseCode)From IdMtoEnterprise],第1行第13列[com.sdn.entidad.IdMtoEnterprise]类的未知状态或关联字段[IdMtoEnterprisePK]时出错。您的字段名为
IdMtoEnterprisePK
(小写i),而不是IdMtoEnterprisePK
(大写I)