HQL - 内部联接 - 加入策略

时间:2015-05-17 15:36:41

标签: hibernate hql inner-join

Fish扩展了LivingBeings(为此生成的getter和setter) class diagram
 加入策略使用@Inheritance(strategy=InheritanceType.JOINED)。表结构形成table structure 在sql中尝试内部连接并能够获得所需的结果(测试是数据库名称)

select test.fish.colString ,test.livingbeings.name 
    from test.livingbeings
    inner join test.fish on test.fish.serialNo = test.livingbeings.serialNo;

使用HQL createSQLQuery它正在运行

SQLQuery query = session.createSQLQuery(
    "select test.fish.colString , test.livingbeings.name from test.livingbeings " +
    "inner join test.fish on livingbeings.serialNo = fish.serialNo");  

当尝试使用HQL时,createQuery获取空指针异常?

Query query= session.createQuery("select l.serialNo, f.colString
   from LivingBeings l inner Join l.serialNo f");

1 个答案:

答案 0 :(得分:1)

假设您已正确映射您的实体,您可能需要这样做。这完全是关于映射的。

Query query = session.createQuery(
    "select f.serialNo, f.colString from Fish f");

因为Fish继承自LivingBeings。