我对Hibernate Criteria不是很熟悉,如果这个问题太简单了,我表示歉意......但是,非常感谢任何帮助!Hibernate Criteria集合属性(子查询?)
我有两个实体,CD和Track。每张CD都有音轨对象的集合。在每个轨道中都有一个名为“title”的字符串字段。现在我想要使用Hibernate Criteria检索所有具有“title”设置为特定值的Track的CD。我到目前为止是这样的:
//session handling
Criteria cdCriteria = session.createCriteria(CD.class);
DetachedCriteria trackCriteria = DetachedCriteria.forClass(Track.class);
trackCriteria.add(Restrictions.eq("title", "SomeTitle"));
trackCriteria.setProjection(Projections.property("title"));
criteria.add(Subqueries.exists(trackCriteria));
List<CD> cds = criteria.list();
这将返回所有的CD,无论曲目标题的。有人有任何建议吗?
预先感谢您。
谢谢!我设法让你的最后一个解决方案工作,加入。另外两个映射异常失败,Unknown entity:null我相信这是因为“track.cd”,因为“cd”不是Track中的字段。仅从CD到Track的关系是定向的。还是我在这里错了? – user1119371 2011-12-28 15:28:45
不,你说得对。我认为该协会是双向的,并且一个赛道有一个CD场。 – 2011-12-28 15:32:23
那么,通过使用子查询是不可能的?由于关联不是双向的,唯一的方法是使用连接? – user1119371 2011-12-28 15:56:43