Java Hibernate列公式返回null
在我的hibernate映射文件中,为了获取员工的全名,我定义了如下列公式Java Hibernate列公式返回null,java,hibernate,Java,Hibernate,在我的hibernate映射文件中,为了获取员工的全名,我定义了如下列公式 <property name="empFirstName" column="emp_First_Name" type="string" not-null="false" lazy="false" /> <property name="empLastName" column="emp_Last_Name" type="string" not-null="false"
<property name="empFirstName" column="emp_First_Name" type="string"
not-null="false" lazy="false" />
<property name="empLastName" column="emp_Last_Name" type="string"
not-null="false" lazy="false" /><property name="fullName" formula="concat(emp_First_Name, ' ', emp_Last_Name)" />
但是,如果属性中的任何一个(名字或姓氏)为null,则返回null。如何使其为null属性返回空字符串?您可以尝试对整个列公式使用
COALESCE()
:
<property name="fullName"
formula="select coalesce(concat(emp_First_Name, ' ', emp_Last_Name), '') from employee" />
COALESCE(A,B)
在JPA或原始SQL中的工作方式是,当A
不为空时,它输出A
,当A
为空时,它输出B
。您可以尝试对整个列公式使用COALESCE()
:
<property name="fullName"
formula="select coalesce(concat(emp_First_Name, ' ', emp_Last_Name), '') from employee" />
COALESCE(A,B)
在JPA或原始SQL中的工作方式是,当A
不为null时,它输出A
,当A
为null时,它输出B
。我想你的问题是,如果每个属性(firstName或lastName)都为null,如何处理null
在代码中,您应该执行以下操作(创建对象并设置FirstName和lastName)
例如:String firstName=“Joe”;
account.setFirstname(firstName)代码>
简单地说,您可以用null值检查firstName,并将其设置为空,如下所示
if(firstName.equal(null))
firstName = ""; // set an empty value to it.
我希望这对你有帮助 我想您的问题在于,如果每个属性(firstName或lastName)都为null,如何处理null
在代码中,您应该执行以下操作(创建对象并设置FirstName和lastName)
例如:
String firstName=“Joe”;
account.setFirstname(firstName)代码>
简单地说,您可以用null值检查firstName,并将其设置为空,如下所示
if(firstName.equal(null))
firstName = ""; // set an empty value to it.
我希望这对你有帮助 明白了
如果A不为null,则COALESCE(A,B)返回A,如果A为null,则返回B
所以我需要的是
CONCAT( COALESCE(emp_First_Name,''),'',COALESCE(emp_Last_Name,'') )
因此,如果其中一个属性为null,则返回另一个属性且不为null。如果两个属性都为null,则返回空字符串获取它
如果A不为null,则COALESCE(A,B)返回A,如果A为null,则返回B
所以我需要的是
CONCAT( COALESCE(emp_First_Name,''),'',COALESCE(emp_Last_Name,'') )
因此,如果其中一个属性为null,则返回另一个属性且不为null。如果两个属性都为null,则返回空字符串。我仍然遇到了相同的问题:(谢谢你@TimBiegeleisen它帮助了一个lot)我仍然遇到了相同的问题:(谢谢你@TimBiegeleisen它帮助了一个lotYes)当然……这是@Mohammaddrezakhatamiyes肯定的一种方式……这是@Mohammaddrezakhatami的一种方式