当前位置: 首页 > 知识库问答 >
问题:

JPA、Hibernate、db2:JPQL-Query和char列

呼延骏俊
2023-03-14

我在hibernate中使用JPA,在下面的JPQL查询中遇到了一些问题:

final Query query = getEntityManager().createQuery(
            "select u from User u where u.username = :username")
query.setParameter("username", "a"); 

附上一些配置信息:

  • Hibernate版本:3.6.10.final
  • JDBC驱动程序:db2jcc 3.61.65
  • 方言:org.hibernate.dicult.db2diagence
  • 字段声明:
     @Column(name = "USER_NAME", length = 50)
     @NotNull
     @Size(max = 50)
     private String username;
    
  • 用户类型声明@typedef(name=“trimmedstring”,defaultForType=string.class,typeClass=trimmedstringusertype.class)

共有1个答案

仲霍英
2023-03-14

Hibernate将字符串映射到VARCHAR类型。这里解释一下

http://docs.jboss.org/hibernate/orm/3.6/reference/en-美国/html/types.html

为了确保它映射到char,您需要在您的自定义db2方言中指定,如这里所述。

JPA/Hibernate DDL生成;查尔对瓦尔查尔

 类似资料:
  • 问题内容: 使用Criteria或HQL有什么利弊?Criteria API是在Hibernate中表达查询的一种很好的面向对象的方式,但是有时候Criteria Queries比HQL更难以理解/构建。 您何时使用标准以及何时使用HQL?在哪种用例中,您更喜欢什么?还是只是口味问题? 问题答案: 我最喜欢动态查询的条件查询。例如,动态添加一些订购或根据某些参数省去某些零件(例如限制)要容易得多。

  • 问题内容: 我有一个JPA / Hibernate数据模型,正在使用Hibernate hbm2ddl工具生成数据库DDL。我在数据库中有一些应该是CHAR的字符串,有些可能是VARCHAR。我想最小化DDL的手动编辑(我意识到有些事情必须发生)。 有人知道我应该怎么做吗?我意识到我可以通过被破解的方言来制作所有Strings VARCHARS或CHARS,但这并不是数据库中总是合适的方法。 我希

  • 当我尝试更新狮身人面像实时索引时,我收到上述错误。由于sphinx使用非常接近mysql的数据库,因此我正在尝试使用实体管理器来更新索引。但是sphinxql不是一个完整的mysql数据库,所以如果我使用entitymanager.merge方法,sphinxql无法理解生成的sql。因此,我决定使用 createNativeQuery 插入新索引或从实时索引中删除索引。但是,当我调用create

  • 问题内容: 我有一个Oracle表,其中包含几列的char(n)类型。我使用hibernate工具创建实体对象,此工具在String中映射char类型。 但是,当我部署应用程序时,我收到一个错误,因为Hibernate等待varchar2类型而不是char类型: 我必须使用哪种Java类型来映射实体中的char(n)类型? 谢谢。 问题答案: 此博客条目上有一些有用的信息。 从本质上讲,您需要使h

  • 问题内容: 我以为我知道该如何使用,但显然不知道如何使用。谁能帮我? 这给我例外 与拥有OneToMany关系。 我的第二个问题是,说此查询返回唯一的结果,那么如果我这样做 代表上面的查询名称。那么,将其串联在一起还是会得到回报? 问题答案: JPQL中的一对多关系如下所示: 在子句中指定多个属性时,结果返回为: 顺便说一下,为什么您的实体以复数形式命名,这令人困惑。如果要使用复数形式的表名,则可

  • 主要内容:JPQL功能特性,在JPQL中创建查询JPQL(Java持久性查询语言)是一种面向对象的查询语言,用于对持久实体执行数据库操作。 JPQL不使用数据库表,而是使用实体对象模型来操作SQL查询。 这里,JPA的作用是将JPQL转换为SQL。因此,它为开发人员提供了一个处理SQL任务的简单方式。 JPQL是实体JavaBeans查询语言(EJBQL)的扩展,向其添加了以下重要功能 - 它可以执行连接操作。 它可以批量更新和删除数据。 它可