我有下一个课程/表格:
以下代码:
Criteria criteria = session.createCriteria("User");
criteria.list();
返回User
的列表,其中包含与它们相关的Work
对象列表(通过id = user_id)。
如何修改此查询以获取User
的相同列表,但具有以下限制:
Work
的列表不应包含Work
,其中name ='fck'?
答案 0 :(得分:1)
这是可能的,但不明智,因为加载的用户不会反映数据库的实际状态:他们的作品列表应该包含他们的所有作品,而不仅仅是其中的一部分。修改它们可能会导致数据库中不需要的删除。
我宁愿用他们的相关用户加载你感兴趣的作品:
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"));