我正在将 JPA 与休眠一起使用,并且在使用以下 JPQL 查询时遇到了一些问题:
final Query query = getEntityManager().createQuery(
"select u from User u where u.username = :username")
query.setParameter("username", "a");
使用 DB2 V9.7 数据库时,即使存在用户名为“a”的用户,查询也会导致 NoResultException。仅当具有用户名的列的类型为 char 时才会出现此问题。如果我将列类型更改为 varchar,就像 hibernate 会自己生成它一样,查询工作正常。
有任何想法吗?
附上一些配置信息:
- 休眠版本:3.6.10.Final
- jdbc 驱动程序:db2jcc 3.61.65
- 方言:org.hibernate.dialect.DB2Dialect
- 字段声明:
@Column(name = "USER_NAME", 长度 = 50) @NotNull @大小(最大值 = 50) 私人字符串用户名;
- 用户类型声明
@TypeDef(name = "trimmedString", defaultForType = String.class, typeClass = TrimmedStringUserType.class)