2012-05-26 29 views
0

我使用的EclipseLink(JPA)+ GlassFish的V3.1.2 +的NetBeans 7.1.2如何使用嵌入ID來標記JPQL SELECT MAX?

我有一個表,複合主鍵:

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; 
} 

現在..我怎麼寫SELECT MAX(與嵌入式ID)與JPQL條款?

這個失敗...

Select MAX(e.IdMtoEnterprisePK.idMtoEnterpriseCode) From IdMtoEnterprise e 

產生的原因:java.lang.IllegalArgumentException異常: 異常說明:在創建中的EntityManager查詢時出現異常錯誤編譯查詢[選擇MAX(e.IdMtoEnterprisePK .idMtoEnterpriseCode)從IdMtoEnterprise e]第1行第13列:[com.sdn.entidad.IdMtoEnterprise]類的未知狀態或關聯字段[IdMtoEnterprisePK]。

回答

1

您的字段被命名爲idMtoEnterprisePK(小寫字母i),而不是IdMtoEnterprisePK(大寫字母I)。

+0

謝謝@jb,現在它工作 – jthmiranda