问题将本地查询从Hibernate迁移到EclipseLink 2.0

时间:2011-08-03 09:28:22

标签: java hibernate jpa eclipselink

我很感激,如果有人能指出我为什么我可以在下面尝试执行以下查询时遇到错误的解决方案,这对Hibernate没有任何问题:

实体(Step.java):

@Entity
@Table(name = "IAS_STEP")
public class Step implements Serializable {
    @Id
    private Long id;

    @Temporal(TemporalType.DATE)
    private Date tarih;

    private long formId;

    private Byte faz;

    // getters, setters, etc.
}

控制器类中的方法:

public byte getMaxPhase(String sid, long form_id) {
    EntityManager em = getEntityManager();
    try {
        Query q = em
                .createQuery(
                        "select max(faz) as mf from Step s where s.id = :sid and s.formId = :formId")
                .setParameter("sid", sid)
                .setParameter("formId", form_id);
        return ((Byte) q.getSingleResult()).byteValue();
    } finally {
        em.close();
    }
}

这在Hibernate中运行得很好,但在EclipseLink 2.0中导致错误。

任何人都可以建议解决方法吗?

1 个答案:

答案 0 :(得分:1)

max(faz) 

应该是,

max(s.faz)

(您正在执行JPQL而不是本机SQL查询)