Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 4.3.0.Final:在多个表上选择_Hibernate - Fatal编程技术网

Hibernate 4.3.0.Final:在多个表上选择

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

我正在使用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
    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创建这样的查询是不可能的……你有什么代码片段我可以从中获得灵感吗