2

このような構成で HQL を使用して table2 の個々の列に到達することは可能ですか?

<hibernate-mapping>
  <class table="table1">
    <set name="table2" table="table2" lazy="true" cascade="all">
      <key column="result_id"/>
      <many-to-many column="group_id"/>
    </set>
  </class>
</hibernate-mapping>
4

3 に答える 3

1

それらに対してクエリを実行することはできますが、それを where 句の一部にすることはできません。例えば、

select t1.table2.x from table1 as t1

動作しますが、

select t1 from table1 as t1 where t1.table2.x = foo

しません。

于 2008-09-16T18:23:48.620 に答える
1

これらは、table1 の table2 プロパティの単なるプロパティです。

select t1.table2.property1, t1.table2.property2, ... from table1 as t1

あなたは参加しなければならないかもしれません。

select t2.property1, t2.property2, ... 
    from table1 as t1
    inner join t1.table2 as t2

hibernate docの関連部分は次のとおりです。

于 2008-09-16T18:11:34.173 に答える
0

table2 に列 " color varchar(128)" があり、この列が適切に Hibernate にマップされているとします。

次のようなことができるはずです。

from table1 where table2.color = 'red'

これにより、列が「赤」の行table1にリンクされているすべての行が返されます。Hibernate マッピングでは、参照するテーブルと同じ名前になっていることに注意してください。上記のクエリは、テーブルの名前ではなく、セットの名前を使用しています。table2colorset

于 2008-09-16T19:47:47.873 に答える