0
我有一个hibernate与其中的自定义集合类型的映射。定制集合上的休眠查询
的java:
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
是接口HistoryMap
的实现,并实现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,但不知道如何,甚至可能。
任何指针表示赞赏!
感谢