我有一个带有自定义集合类型的休眠映射。
爪哇:
class Policy {
...
private HistoryMap<Date, PolicyStatus> statusHistory;
...
}
hbm.xml:
<map name="statusHistory" inverse="true" table="tbl_policy_in_time" order-by="PolIt_ValidFrom desc"
collection-type="be.pensionarchitects.admindb.infrastructure.hibernate.HistoryMapType">
...
</map>
HistoryMapType
是 interfaceHistoryMap
和 implements的实现UserCollectionType
。
此地图有一个getCurrent()
返回当前的方法PolicyStatus
。
现在我需要进行查询以获取所有具有特定 PolicyStatus 的 Policy 对象作为当前对象。
就像是:
Criteria crit = getSession().createCriteria(Policy.class)
.createAlias("statusHistory.current", "status")
.add(Restrictions.or(
Restrictions.eq("status.code", "active"),
Restrictions.eq("status.code", "sleeper")));
我知道这不起作用,因为“当前”不是关联映射。我应该如何解决这个问题?我已经读过我应该改用 HQL,但不知道如何以及是否可能。
任何指针表示赞赏!
谢谢