我有下一个类/表:
用户
- ID
- 姓名
- 作品 // 作品列表
工作
- ID
- 姓名
- 用户身份
以及以下代码:
Criteria criteria = session.createCriteria("User");
criteria.list();
返回一个User
s 列表,其中包含Work
与它们关联的对象列表(通过 id=user_id)。
如何修改此查询以获取相同User
但具有以下限制的列表:列表Work
不应包含Work
s where name ='fck'?
我有下一个类/表:
以及以下代码:
Criteria criteria = session.createCriteria("User");
criteria.list();
返回一个User
s 列表,其中包含Work
与它们关联的对象列表(通过 id=user_id)。
如何修改此查询以获取相同User
但具有以下限制的列表:列表Work
不应包含Work
s where name ='fck'?
这是可能的,但不明智,因为加载的用户不会反映数据库的实际状态:他们的作品列表应该包含他们所有的作品,而不仅仅是其中的一些。修改它们可能会导致数据库中不必要的删除。
我宁愿将您感兴趣的作品与其关联的用户一起加载:
Criteria c = session.createCriteria(Work.class, "work");
c.createAlias("work.user", "user");
c.setFetchMode("work.user", FetchMode.JOIN);
c.add(Restrictions.ne("work.name", "fck"));