【DM版本】:dm8_20251020_x86_win_64
【操作系统】:window 10
【CPU】:x86
JDK:17
DmJdbcDriver11:8.1.4.41033
DmDialect-for-hibernate6.4:8.1.4.93
在java中执行下面这个语句,报错了。
SELECT t FROM User t WHERE (:textSearch IS NULL OR (t.name LIKE CONCAT('%', :textSearch, '%')) )
源码
@Autowired
private EntityManager entityManager;
@Test
void testNullSql(){
String jpql = "SELECT t FROM User t WHERE (:textSearch IS NULL OR (t.name LIKE CONCAT('%', :textSearch, '%')) )";
Query query = entityManager.createQuery(jpql, User.class);
query.setParameter("textSearch", null);
List resultList = query.getResultList();
System.out.println(resultList);
}
错误信息:
2026-01-16T16:38:41.260+08:00 DEBUG 15348 --- [dameng-springboot] [ main] org.hibernate.SQL : select u1_0."id",u1_0."age",u1_0."email",u1_0."name" from "user" u1_0 where (? is null or (u1_0."name" like ('%'||?||'%')))
Hibernate: select u1_0."id",u1_0."age",u1_0."email",u1_0."name" from "user" u1_0 where (? is null or (u1_0."name" like ('%'||?||'%')))
2026-01-16T16:38:41.287+08:00 TRACE 15348 --- [dameng-springboot] [ main] org.hibernate.orm.jdbc.bind : binding parameter (1:JAVA_OBJECT) <- [null]
2026-01-16T16:38:41.287+08:00 TRACE 15348 --- [dameng-springboot] [ main] org.hibernate.orm.jdbc.bind : binding parameter (2:JAVA_OBJECT) <- [null]
2026-01-16T16:38:41.288+08:00 WARN 15348 --- [dameng-springboot] [ main] com.zaxxer.hikari.pool.ProxyConnection : HikariPool-1 - Connection dm.jdbc.driver.DmdbConnection@174721c4 marked as broken because of SQLSTATE(08S01), ErrorCode(6001)
dm.jdbc.driver.DMException: Communication error
at dm.jdbc.driver.DBError.throwException(SourceFile:864) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.a(SourceFile:283) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.a(SourceFile:1250) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.b(SourceFile:1077) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.a(SourceFile:861) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.executeInner(SourceFile:575) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.do_executeQuery(SourceFile:704) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.driver.DmdbPreparedStatement$2.run(SourceFile:1948) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
······
Caused by: java.io.EOFException: null
at dm.jdbc.util.buffer.ByteArrayNode.load(SourceFile:132) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.util.buffer.Buffer.load(SourceFile:365) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.c.a(SourceFile:208) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.e(SourceFile:399) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
at dm.jdbc.a.a.a(SourceFile:273) ~[DmJdbcDriver11-8.1.4.41033.jar:- 8.1.4.181 - Production]
... 105 common frames omitted
请问有人遇到过这个问题吗?

流意外结束,查看数据库状态及网络是否正常
换成数据库自带的驱动看看,安装目录下的drivers目录有对应驱动