Hibernate 是否存在JPQL null安全表达式
在以下JPQL查询中:Hibernate 是否存在JPQL null安全表达式,hibernate,jpa,jpql,Hibernate,Jpa,Jpql,在以下JPQL查询中: 从Employee e中选择NEW com.java2s.common.EmployeeDetails(e.name、e.salary、e.department.name) 如果e.department为null,如何将null传递给构造函数(作为第三个参数) 如果e.department为null,我猜e.department.name将导致异常 如果e.department为空,我想e.department.name将导致异常 否。e.department.name在
从Employee e中选择NEW com.java2s.common.EmployeeDetails(e.name、e.salary、e.department.name)
如果e.department
为null
,如何将null
传递给构造函数(作为第三个参数)
如果e.department
为null
,我猜e.department.name
将导致异常
如果e.department为空,我想e.department.name将导致异常
否。e.department.name
在员工表和部门表之间进行隐式内部联接。因此,如果员工没有任何部门,那么查询甚至不会返回该员工
如果要选择没有部门的员工,则需要左联接:
上面的查询将返回该员工的姓名和工资,如果该员工没有部门,则返回null作为该部门的名称
注:实验是将猜测转化为事实的一种非常好的方法。你为什么不试试这个查询,而不是猜测它会做什么 目前,我正在试验问关于SO的问题:)我不太熟悉:)我做了更多的试验:)如果我想要
e.department.id
而不是e.department.name
,那么查询将本地化到当前表,因为有所有需要的信息。在这种情况下将不会有连接。
select new com.java2s.common.EmployeeDetails(e.name, e.salary, d.name)
from Employee e
left join e.department d