繁体   English   中英

使用createSQLQuery()连接表时,Hibernate可以返回一个null对象吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM