是否可以使用具有此类配置的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>
答案 0 :(得分: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的相关部分。
答案 1 :(得分:1)
您可以查询它们,但不能将其作为where子句的一部分。如,
select t1.table2.x from table1 as t1
可行,但
select t1 from table1 as t1 where t1.table2.x = foo
不会。
答案 2 :(得分:0)
假设table2有一列“color varchar(128)
”,此列已正确映射到Hibernate。
你应该可以这样做:
from table1 where table2.color = 'red'
这将返回链接到table1
列为“红色”的table2
行的所有color
行。请注意,在Hibernate映射中,set
与其引用的表具有相同的名称。以上查询使用集的名称,不表的名称。