Hibernate Criteria仅返回部分结果

时间:2015-01-16 20:21:36

标签: java hibernate hql criteria

您好我正在尝试使用Hibernate Criteria进行查询,它只返回部分查询。

这是我的实体类

class DataStructureEntity
    DataStructureStatus statusId
    //fields, getters, setters omitted for space reasons
}

class DataStructureStatus {
    public static final String STATUS_TYPE_PUBLISHED = "Published";
    public static final String STATUS_TYPE_DRAFT = "Draft";

    private String statusName;
    //other fields, getters, setters omitted for space reasons
}

这是我的查询

DetachedCriteria dctr = DetachedCriteria.forClass(DataStructureEntity.class);
dctr.createCriteria("statusId").add(Restrictions.or(Restrictions.eq("statusName",   
    DataStructureStatus.DRAFT_ID), (Restrictions.eq("statusName", 
    DataStructureStatus.PUBLISHED_ID))));

并执行查询:

return dctr.getExecutableCriteria(getSession()).setFirstResult(firstRow).setMaxResults(maxResults).list();

我需要此查询来返回DataStructureEntity对象,其中DataStructureEntity.statusId.statusName等于DataStructureStatus.DRAFT_ID或DataStructureStatus.DRAFT_PUBLISHED。但是,查询仅返回DataStructureEntity.statusId.statusName等于DRAFT_PUBLISHED的对象。

谁能明白为什么会这样?如果查询被写为HQL,它是否会产生差异?如果是这样,那怎么写成HQL?

感谢您的帮助!!!

0 个答案:

没有答案