java - Hibernate concat_ws 和空字段

标签 java mysql hibernate concat-ws

我在 hibernate 查询中使用 CONCAT_WS, 创建一个巨大的字符串并使用 like '%value%' 按所有字段进行搜索。它工作正常,但对于某些记录,某些字段为空。例如,如果 actId 为空,我的整个 concat_ws 返回空。我不知道为什么,concat_ws 必须忽略空值。可能是因为 hibernate 试图从 null 调用 getActNumber?无论如何,我正在努力解决这个问题。

  where CONCAT_WS("_", actItemId.actId.actNumber, DATE_FORMAT(recordDate, '%d.%m.%Y'), actItemId.techniqueId.name, fzkActNumber, ....etc) like '%value%'

谢谢!

最佳答案

CONCAT_WS() 按设计运行。

如果您希望它在某些参数为 NULL 时也能正常工作,请执行类似的操作将每个可能为 NULL 的参数转换为空格。

CONCAT_WS('_',  IFNULL(cola,''), IFNULL(colb,'') ...)

关于java - Hibernate concat_ws 和空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49383234/

相关文章:

java - 如何在 Play Framework 2 中从外部向 Actor 发送消息?

java - ClassNotFoundException 被神奇地取消选中

mysql - 在 MySQL 中创建用户帐户时如何有效更新 mongodb?

java - 通讯异常 : Communications link failure

java - Vert.x 代理服务 - 处理不同机器上的路由

php - mysql数据库中如何在前面添加0并自动递增

java - Hibernate 4.3.4 StandardServiceRegistryBuilder

java - 什么时候使用全局事务或者使用spring aop进行事务

java - Hibernate单向一对一

java - 有没有更好的方法来计算 Map 中的值?