我需要能够做到以下几点:
选择*从Table1左边连接Table2,id1 = id2 AND i1 =?
Hibernate标准不允许指定i1 =?部分.
现有代码使用的是hibernate标准,它将是一个巨大的重构来换出HQL
有没有人有任何提示我如何以不同的方式实现或以任何方式覆盖Hibernate Criteria?我并不反对破解开放式休眠和修改,但是当我开始挖掘它时,似乎层层抽象.我从未发现SQL实际生成的地方......
小智 13
这似乎是我需要的......
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2308
即
public Criteria createAlias(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException;
public Criteria createCriteria(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException;
Run Code Online (Sandbox Code Playgroud)
您可以使用 Fetch 模式加入。您可以通过这样做:
Criteria criteria = session.createCriteria(Table1.class);
criteria.setFetchMode(table2OutputList, FetchMode, JOIN);
criteria.add(Restrictions.eq("i1", i1Value);
return criteria.list();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须在运行此查询之前获取 table2OutputList。这篇文章可以给你一个更好的想法;
归档时间: |
|
查看次数: |
10123 次 |
最近记录: |