0

SQLクエリは次のとおりです。

select s1.* 
from Sample1 s1,Sample2 s2 where
s1.field1=s2.field4 and
s2.field2='XXYYZZ'

テーブル構造

  • テーブル Sample1 には 3 つのフィールド ( field1、field2、field3 ) しかありません。
  • テーブル Sample2 には 3 つのフィールド ( field4、field5、field6 ) があります。

そしてBeanの名前は

Sample1BeanSample2Bean

Sample1 のみ (field1、field2、field3) からのデータのみが必要です。HQLなしでHibernateを使用し、Criteriaクラスを使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

0
  SELECT s1 FROM Sample1 s1, Sample2 s2 WHERE s1.field1 = s2.field2 AND s2.field2 = 'XXYYZZ'

結果としてタイプ Sample1 のオブジェクトが返されます。

于 2011-03-22T12:41:23.973 に答える
0
List s1 = session.createCriteria(Sample1.class)
                 .createCriteria("field1")
                 .add(Restrictions.eq("field2", "XXYYZZ")).
                 .list();

Hibernate は、テーブルにないオブジェクトに対してクエリを実行します。そのため、Sample1 と Sample2 の間の関連付けをマップする必要があります。

オブス:

  1. s1 には Sample1 のリストが含まれます。
  2. 「field1」は、タイプ Sample2 の Sample1 の属性である必要があります。
于 2011-03-22T13:45:47.487 に答える