通过HQL查询获取内容

时间:2015-11-26 12:25:23

标签: java jpa

所以这是本机查询,如:

app.js

实体结构

select p.my_t_id from  tl t
inner join p p 
on p.id=t.p
where t.id=1

我无法找出其@Entity class Tl{ private Long p; } @Entity class P{ Long id; MyObjClass obj; } @Entity class MyObjClass{ Long myTId; } 查询..

2 个答案:

答案 0 :(得分:0)

由于T1和P没有关系,因此您必须使用笛卡尔连接。请参阅JPA规范中的第4.4.5节:http://download.oracle.com/otn-pub/jcp/persistence-2.0-fr-eval-oth-JSpec/persistence-2_0-final-spec.pdf

我无法真正翻译您的原生查询,因为您在SQL中引用了不在实体中的Tl和P上的id列。但请阅读规范,这应该可以让你到达目的地。

答案 1 :(得分:0)

正如我在评论中提到的,你必须拥有有意义的实体模型和关系。

像这样的事情(我对无意义的名字感到厌烦,你能给出更有意义的东西吗?)

class Tl {
    private Long id;  // ID of Tl itself
    private P p;
}

class P {
    private Long id;
    private MyObjClass objClass;
}

class MyObjClass {
    private id;  // map to column myTId
}

HQL看起来像

select tl.p.objClass.id from Tl tl