【发布时间】:2011-11-17 13:34:52
【问题描述】:
已解决:将连接类型更改为 INNER_JOIN
我正在尝试在执行休眠条件后获取域类的原始表条目。
例如:
域类 A 与域类 B 有一个 hasMany 关联。
A 的 id 为 1 的实体,得到了 B 的两个 id 为 11 和 12 的实体。
我正在执行以下标准:
Criteria criteria = session.createCriteria(A.class)
criteria.createAlias("Bs","B",CriteriaSpecification.LEFT_JOIN)
criteria.add(Restrictions.like("B.property", "%"+something+"%")
def list=criteria.list().unique()
现在我有一个包含 A 的所有实体的结果集,它得到了一个 B 的实体,它满足了条件。
但是 A 的结果与 A 的原始实体不同,关于与 B 的 hasMany 关系。缺少 B 的不满足条件的实体。
例如:id 为 1 的实体 A 只得到了 id 为 11 的实体 B。
即使我执行了一个
def newA=A.findById(list[0])
newA 只获得了 ID 为 11 的 B 实体。而 12 丢失了。
有什么想法吗?
【问题讨论】: