【问题标题】:HibernateException: Wrong column type after changing column from number to varchar2 in a Oracle DBHibernateException:在 Oracle DB 中将列从数字更改为 varchar2 后,列类型错误
【发布时间】:2016-11-06 21:34:27
【问题描述】:

在 Oracle 数据库中将列从 number 更改为 varchar2 后,我在 Hibernate 中遇到了一个奇怪的行为。

Caused by: org.hibernate.HibernateException: Wrong column type in XXX for column SESSION_TOKEN. Found: varchar2, expected: number(10,0)

在我相应的域对象中,我将变量从 Integer 更改为 String,如下所示:

@Column(name = "SESSION_TOKEN", nullable = true)
private String sessionToken;

我在persistence.xml中已经有了以下属性

<property name="hibernate.hbm2ddl.auto" value="validate"/>            

所以在我看来,内部缓存之类的东西仍然包含表的旧描述? 有任何想法吗?? 我的环境: JBoss AS:7.1.1 甲骨文:11.2

【问题讨论】:

  • 检查您的配置中是否启用了架构验证。 hibernate.hbm2ddl.auto=validate
  • 我已经在persistence.xml中有这个属性了,还是不行!
  • 您在类级别或数据库级别更改了列的数据类型?
  • 两者:首先我做了一个“alter table”,将列从 number 更改为 varchar2,然后我将域对象从 Integer 更改为 String。
  • 在你的域对象中尝试@column(columndefination="char")

标签: java oracle hibernate jakarta-ee


【解决方案1】:

问题解决了!很奇怪!!重新启动我的笔记本电脑后,问题就消失了!谢谢僵尸!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2015-01-02
    • 2015-08-02
    • 2014-02-23
    • 1970-01-01
    相关资源
    最近更新 更多