我希望JPQL喜欢以下示例:
让酒店对象有两个客户和组织对象。如果Customer不为null,则组织将为null。如果Customer为null,则组织不会为null。所以
我JPQL喜欢这个;
从Hotel h
中选择h.customer.name.firstName,h.organization.name
我想将这两个结果中的一个仅分配给一个变量,因为一个变量总是为空。 谢谢,抱歉我的英语。
答案 0 :(得分:1)
可能您正在寻找COALESCE()
功能。请尝试以下方法:
SELECT COALESCE(h.customer.name.firstName, h.organization.name) FROM Hotel h
如果需要,您还可以使用CASE
表达式。
更多详情:http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch11.html#d5e3257
答案 1 :(得分:0)
您可以同时选择两个字段&然后可以检查代码中的空值,否则你可以尝试使用case语句,选择非空值。
SELECT CASE WHEN (h.customer.name.firstName NOT NULL) THEN h.customer.name.firstName
WHEN (h.organization.name NOT NULL) THEN h.organization.name
ELSE DEFAULT_VALUE
END
FROM Hotel h
[我还没有尝试过执行它,您可以根据需要进行修改尝试]