【问题标题】:hibernate select foreign-key property is null休眠选择外键属性为空
【发布时间】:2016-10-14 03:02:48
【问题描述】:

我有以下两个豆子:

模型1:

Man { 
id, 
name 
}

模型2:

Girl { 
id, 
name, 
(Man)man 
}

我想用 hql 找到没有男人的女孩。

我尝试了什么:

from Girl n where n.man.id is null


但结果列表为空! 我发现原因是因为当我们查询外键属性时,hibernate会自动内连接两个表,所以无法查询带有空外键属性列表的结果。 你能帮帮我吗?

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    您可以使用以下内容(也适用于 Hibernate 5)

    select g from Girl g where not exists elements(g.man)
    

    【讨论】:

    • 不工作,“嵌套异常是 java.lang.NullPointerException”,我不知道。
    • 你做错了什么。我已经用我的实体测试了相同的查询,它可以正常工作并返回正确的结果。向您发布完整的代码和异常的确切行。
    • String hql="来自不存在的账户 n 元素(n.role)"; // java.lang.NullPointerException hql="from Account n"; // 这可以工作 baseService.queryHql(hql, new Object[]{});
    • 你的第一个 hql 如何返回空集然后你运行它并抛出空指针异常?看不懂。
    • 错误的异常是使用elements函数,没有使用"is null",我发现真正的原因是在hql中使用"union all"不起作用,使用"is null"可以查询列表。所以我的问题是如何在 hql 中使用“union all”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2018-03-09
    相关资源
    最近更新 更多