Oracle Char 类型和 Hibernate
我有一个 oracle 表,其中包含多列的 char(n) 类型。我使用 hibernate 工具创建实体对象,并使用此工具将 char 类型映射到 String 中。
但是,当我部署应用程序时,我收到错误,因为 Hibernate 等待 varchar2 类型而不是 char 类型:
Wrong column type in ARBOR.CMF for column CHG_WHO. Found: char, expected: varchar2(30 char)
What kind of java type must I use to map char(n) type in an entity ?
谢谢。
I have a oracle table which contains char(n) type for several columns. I use hibernate tools to create entities objets and this tool map char type in String.
But when I deploy my application, I get an error because Hibernate wait a varchar2 type and not a char type:
Wrong column type in ARBOR.CMF for column CHG_WHO. Found: char, expected: varchar2(30 char)
What kind of java type must I use to map char(n) type in an entity ?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里有一些有用的信息 在此博客条目上。
本质上,您需要使您的休眠配置更加具体,因为它假设默认字符串映射到 varchar2(30)。
您可以尝试使用与数据库无关的注释 @Column(length=N) (其中 N 是数据库中列的实际长度)。如果这不起作用,请尝试使用 @Column(columnDefinition = "char") 方法。
There's some useful information here on this blog entry.
Essentially you need to make your hibernate configuration more specific, as it's assuming a default String mapping to varchar2(30).
You can try using the database-agnostic annotation of @Column(length=N) (where N is the actual length of your column in the database). If that doesn't work, try using the @Column(columnDefinition = "char") approach.
不起作用 - Hibernate 架构验证失败:
起作用,因为
columnDefinition
属性告诉 Hibernate 不要默认使用VARCHAR2
作为列类型,而是使用CHAR
相反:数据库中的列定义为:
Doesn't work - fails Hibernate schema validation:
Does work, since the
columnDefinition
attribute tells Hibernate not to default toVARCHAR2
as the column type, and to useCHAR
instead:The column in the database is defined as: