Oracle Char类型和Hibernate
我有一个oracle表,其中包含几列的char(n)类型。 我使用hibernate工具创建实体objets,这个工具在String中映射char类型。
但是当我部署我的应用程序时,我收到一个错误,因为Hibernate等待varchar2类型而不是char类型:
Wrong column type in ARBOR.CMF for column CHG_WHO. Found: char, expected: varchar2(30 char)
我必须使用什么样的java类型来映射实体中的char(n)类型?
谢谢。
这篇博客文章中有一些有用的信息。
基本上你需要使你的hibernate配置更具体,因为它假设一个默认的String映射到varchar2(30)。
您可以尝试使用@Column的数据库无关注释(长度= N)(其中N是数据库中列的实际长度)。 如果这不起作用,请尝试使用@Column(columnDefinition =“char”)方法。
不起作用 – Hibernate架构validation失败:
@Column(name="ENABLED_FLAG", length=1) private String enabledFlag;
是否有效,因为columnDefinition
属性告诉Hibernate不要默认为VARCHAR2
作为列类型,而是使用CHAR
代替:
@Column(name="ENABLED_FLAG", length=1, columnDefinition="CHAR") private String enabledFlag;
数据库中的列定义为:
ENABLED_FLAG CHAR(1 BYTE)
- 使用hibernate正确使用Spring mvc 3(Spring ORM)
- 由于代理而导致Spring Bean注入失败
- @Id @GeneratedValue但设置了自己的ID值
- Java Hibernate Transformer AliasToBeanNestedResultTransformer
- 使用TIMESTAMPDIFF的JPA Hibernate公式中的SQL Literal
- Hibernateexception:枚举类的未知名称值
- org.springframework.dao.DataIntegrityViolationException误报原因?
- Session.update和HibernateTemplate.merge之间的Hibernate更新之间的区别
- 如何使用Hibernate JPA线程安全进行数据库访问?