私はこのSQLが欲しい:
SELECT COUNT(*) FROM table1 t1, table2 t2
WHERE t1.id > 0
AND (( t1.name = 'foo')
OR ( t1.id2 = t2.id AND t1.name = 'det'))
table2 にエイリアスを使用する場合:
detachedCriteria.createAlias("table2", "t2");
次のように設定します。
detachedCriteria.add(Restrictions.eqProperty("t1.id2", "t2.id"));
Hibernate は常に SELECT クエリで不要な INNER JOIN を生成し、間違った結果をもたらします。
select count(*) as y0_
from
table1 this_
inner join
table2 table2_
on this_.id2=table2_.id
where
...
SELECTではなくWHERE句(t1.id2 = t2.id)で「INNER JOIN」を実現するにはどうすればよいですか?