繁体   English   中英

为什么冬眠中的Property API没有方法in(Criteria subselect)?

[英]Why not Property API in hibernate has method in(Criteria subselect)?

我的旧项目中有以下代码片段

  DetachedCriteria subCriteria = DetachedCriteria.forClass(Employee.class);
  subCriteria.setProjection(Projections.distinct(Property.forName ("department.departmentId"))).add(Property.forName("departmentName").eq(departmentName));
  Criteria criteria = getCriteria();
  Property.forName("departmentId").in(subCriteria)

我的问题是,我们在Property API中有以下方法(DetachedCriteria子选择):为什么没有方法(Criteria子选择)? 我敢肯定背后应该有一些原因,但是不知何故我没有得到这个? 我之所以这样说,是因为我们应该能够将另一个条件作为子选择而不是DetachedCriteria。

编辑:-我期望如何创建subCriteria如下,因为我现在有可用的会话,因此我不需要使用DetachedCriteria

  Criteria subCriteria1 =session.createCriteria(Employee.class);   
  subCriteria1.setProjection(Projections.distinct(Property.forName("department.departmentId"))).add(Property.forName("departmentName").eq(departmentName));
 Criteria criteria = getCriteria();
  Property.forName("departmentId").in(subCriteria1)

但是在这里subCriteria1是不可接受的,因为只有DetachedCriteria被期望作为方法参数。 为什么不与DetachedCriteria一起使用Criteria参数?

因为条件绑定到会话,所以没有分离。

如果子标准是与另一个会话一起创建的,应该怎么办? 应该使用哪种方言,拦截器,查询替换等?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM