我有一个oracle表,其中包含多个列的char(n)类型。我使用hibernate工具来创建实体对象,这个工具在字符串中映射char类型。
但是当我部署我的应用程序时,我得到了一个错误,因为Hibernate等待的是varchar2类型而不是char类型:
Wrong column type in ARBOR.CMF for column CHG_WHO. Found: char, expected: varchar2(30 char)我必须使用哪种java类型来映射实体中的char(n)类型?
谢谢。
发布于 2010-08-20 18:16:01
这里有一些有用的信息,on this blog entry.
本质上,您需要使您的hibernate配置更加具体,因为它假定有一个默认字符串映射到varchar2(30)。
您可以尝试使用与数据库无关的@ column注释(length=N)(其中N是数据库中列的实际长度)。如果这不起作用,请尝试使用@Column(columnDefinition = "char")方法。
发布于 2017-02-23 20:33:45
不工作-- Hibernate模式验证失败:
@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)https://stackoverflow.com/questions/3529897
复制相似问题