繁体   English   中英

HibernateException:发现:clob,预期:varchar2(4000)

[英]HibernateException: Found: clob, expected: varchar2(4000)

我在使用Hibernate 3和ojdbc7.jar的Tomcat 7上的应用程序中有一个非常奇怪的错误:在当前版本中,DB列已更改为CLOB,并按以下方式配置:

@Column(name = "BESCHREIBUNG")
@Length(min = 0, max = 4000)
@NotNull
@Lob
public String getBeschreibung() {

这在我的本地环境(Oracle 11g XE)和测试环境(Oracle 12)中完全正常,但是在prelive环境(Oracle 12)中,我在应用程序启动期间收到以下错误:

org.hibernate.HibernateException: Wrong column type in XXXX.MYTABLE for column BESCHREIBUNG. Found: clob, expected: varchar2(4000 char)
at org.hibernate.mapping.Table.validateColumns(Table.java:283)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1343) at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:378)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)

有什么暗示吗? 我已经检查过tomcat的/ lib - 目录,如果有一个过时的ojdbc或hibernate jar,没有成功。

添加列定义以解决此问题。

@Column(name = "entity_value", columnDefinition="clob")

根据消息,他仍然期待varchar2 如果他找到一个@Lob ,他会期待一个clob,我猜你没有将代码更改部署到你的prelive环境(至少没有成功)。

我只是删除@Length(...) ,它就像一个魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM