gpt4 book ai didi

java - 使用 createSQLQuery() 连接表时,Hibernate 可以返回空对象吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:24 25 4
gpt4 key购买 nike

我有三个表/类,我正在使用左外连接获取它们。我正在执行以下查询:

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 中的非空属性(我不能将这些属性更改为可为空)。如果 C 中的行不存在而不是尝试创建具有空值的对象,hibernate 中是否有设置为 C 返回空对象?

最佳答案

如果我没有理解错的话。如果 c 为 null 或不为 null,您将尝试获得结果。

您可以像这样将它添加到 where 子句中:

and ((c.name=1234 and c.price=1234) or c.id is null)

关于java - 使用 createSQLQuery() 连接表时,Hibernate 可以返回空对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com