在我的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)" />
但是如果任何一个属性(FIRST或LAST NAME)为null,它将返回null。我如何使它为null属性返回空字符串...?
知道了。。。
COALESCE(A, B)如果A不为空则返回A,如果A为空则返回B
因此我需要的是
CONCAT( COALESCE(emp_First_Name,''),'',COALESCE(emp_Last_Name,'') )
因此,如果其中一个属性为null,则返回另一个属性且不为null。如果两个属性都为null,则返回空字符串
我猜你的问题是,如果每个属性(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.
我希望这对你有帮助!
您可以尝试在整个列公式上使用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
。
有一点公式的乐趣,这让我发疯。我们有一些代码通过公式获取实体,数据库中没有链接,需要在运行时完成,因此@formula的用法。下面是课堂的样子: 公式是这样建立的: 现在,我最初直接使用列DEFAULT\u COST\u CENTER\u SAP\u CODE和DEFAULT\u WBS\u SAP\u CODE,而不使用内部select,但是在这两列上都得到了错误的无效标识符,所以我想我应该尝试
返回指定ID密钥对中的公钥。 调用: web3.shh.getPublicKey(id, [callback]) 参数: id:String - 密钥对的ID,调用shh.newKeyPair()或shh.addPrivateKey()得到 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为结果 返回值: String - 成功时返回指定密钥对的公钥,否
我有一个包含2列store_number和manager_id的表,我为这个表创建了一个实体和一个存储库类。 它返回一个空列表,但是当我直接执行上面的查询时,我会得到结果。 请帮我做这个。我在这里做错什么了吗?
无论如何,这个公式是否可以修改为返回,例如:找到单词“哇”,并将该单词返回到单元格中,而不是true/false? 谢谢。
我希望我的类有一个字段,该字段返回所有公共访问的不可变列表,但在对象实例中,我希望列表是可变的,以便我可以向其添加元素。 我试过了,但不确定这是否被视为良好做法?
我在Hibernate状态下使用关系时得到空。这是我的代码用户实体 登录历史实体 要获取登录历史详细信息,请执行以下操作: 我得到一张空名单。请帮忙