![](/img/trans.png)
[英]How to use JOIN using Hibernate's session.createSQLQuery()
[英]Can Hibernate return a null object when using createSQLQuery() to join tables?
我有三个表/类,我正在使用左外连接。 我正在执行以下查询:
List<Object[]> l = session.createSQLQuery("SELECT a.*, b.*, c.* " +
" FROM (table_a a INNER JOIN table_b b ON a.some_id = b.some_id) " +
" LEFT OUTER JOIN table_c c ON c.some_id = a.some_id"
).addEntity("a", A.class).addEntity("b", B.class).addEntity("c", C.class).list();
当A和B中的行存在但C中没有对应的行时,查询失败,因为hibernate尝试将空值分配给C中的非null属性(我不能将这些属性更改为可为空)。 如果C中的行不存在而不是尝试创建具有空值的对象,那么hibernate中是否有设置为C返回空对象?
如果我不明白错。 如果c为null或者无效,你试图获得结果。
您可以将此添加到where子句,如下所示:
and ((c.name=1234 and c.price=1234) or c.id is null)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.