Java Hibernate列公式返回null

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"

在我的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" 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的一种方式