如何编写带有嵌入式id的JPQL SELECT MAX?

时间:2012-05-26 15:58:31

标签: java-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 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(with EmbeddedId)子句

这失败了......

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 个答案:

答案 0 :(得分:1)

您的字段名为idMtoEnterprisePK(小写i),而不是IdMtoEnterprisePK(大写字母I)。