HQL - 内部连接 ​​- 连接策略

HQL - Inner join - Joined strategy

Fish extends LivingBeings(为其生成的 getter 和 setter)
使用了联合策略 @Inheritance(strategy=InheritanceType.JOINED)。 Table 结构形成 .
在 sql 中尝试了 inner join 并能够得到想要的结果(test 是数据库名称)

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");

假设您已经正确映射了您的实体,您可能需要这个。都是关于映射的。

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

由于 Fish 继承自 LivingBeings。