我正在使用带有hibernate的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会自己生成它,查询工作正常。
有什么想法吗?
附上一些配置信息:
@Column(name = "USER_NAME", length = 50) @NotNull @Size(max = 50) private String username;
@TypeDef(name = "trimmedString", defaultForType = String.class, typeClass = TrimmedStringUserType.class)
答案 0 :(得分:0)
Hibernate将String映射到VARCHAR类型。这在这里解释
http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/types.html
要确保它映射到char,您需要在此处提到的自定义db2方言中指定。