Hibernate 4.3.0.Final:在多个表上选择
我正在使用Hibrnate core 4.3.0 我有两张桌子;表A通过表B将M:N与其自身联系起来 我有这样的结构: 表A:Hibernate 4.3.0.Final:在多个表上选择,hibernate,Hibernate,我正在使用Hibrnate core 4.3.0 我有两张桌子;表A通过表B将M:N与其自身联系起来 我有这样的结构: 表A: ID:主键 名称:元素的名称 状态:元素的状态 表B: *ID\u来源*:FK到表A *ID\u目标*:FK到表A *关系\u NAME*:关系类型的名称 在表B中,主键是由ID_源和ID_目标组成的复合键 现在我已经能够创建所有正确映射的类;现在我想提出以下问题: select ID, NAME, STATE from TABL
- ID:主键
- 名称:元素的名称
- 状态:元素的状态
- *ID\u来源*:FK到表A
- *ID\u目标*:FK到表A
- *关系\u NAME*:关系类型的名称
select
ID,
NAME,
STATE
from
TABLE_A this1, TABLE_B src1_
where
src1_.ID_SOURCE=4018
and src1_.ID_TARGET=this1.ID
select
b.ID_SOURCE,
b.ID_TARGET,
b.RELATION_NAME,
a.ID,
a.NAME,
a.STATE
from
B b
inner join
A a on b.ID_TARGET=a.ID_ENTITY
where
b.ID_SOURCE=?
现在我知道我可以使用HQL和/或本机SQL来创建此类查询,但我喜欢使用Hibernate条件或更好的DetachedCriteria
是否可以使用DetachedCriteria创建这样的查询
多谢各位
Angelo我想我找到了使用setFetchMode的方法;基本上,我编写了这个DetachedCriteria(注意:我用
fetch=FetchType.LAZY
映射了关系字段):
hibernate在以下查询中对此进行了转换:
select
ID,
NAME,
STATE
from
TABLE_A this1, TABLE_B src1_
where
src1_.ID_SOURCE=4018
and src1_.ID_TARGET=this1.ID
select
b.ID_SOURCE,
b.ID_TARGET,
b.RELATION_NAME,
a.ID,
a.NAME,
a.STATE
from
B b
inner join
A a on b.ID_TARGET=a.ID_ENTITY
where
b.ID_SOURCE=?
现在我想知道,当我执行这种查询时,性能如何……这是正确的方法吗
多谢各位
安杰洛你试过了吗?什么失败了,或者你没有理解什么?因为现在的答案是“是”。@mabi是的,我尝试了几种组合,但都没有成功,我越来越确信,使用DetachedCriteria创建这样的查询是不可能的……你有什么代码片段我可以从中获得灵感吗