您好我正在尝试使用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?
感谢您的帮助!!!