由于Oracle中VARCHAR2
类型的限制,即其大小限制为4000字节,我想对某个实体中的列使用CLOB
类型。因此,在阅读文档后,我以这种方式在JPA实体中声明了该字段:
@Column
@Lob
private String log;
我坚持使用此实体没有任何问题,但当我尝试使用简单的SELECT m FROM Meeting m
检索它时,EclipseLink会抱怨无法将类型oracle.sql.CLOB
转换为java.lang.String
}:
javax.persistence.PersistenceException:异常[EclipseLink-3001] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.ConversionException异常 描述:类[oracle.sql.CLOB@e9fbb9],类[class oracle.sql.CLOB],无法转换为[class java.lang.String] 。 内部异常:java.lang.IllegalStateException:此Web 容器尚未启动
我正在使用Eclipselink 2.5.1作为我的JPA实现。数据库是Oracle 10g(10.2.0.3.0),我使用ojdbc6.jar作为驱动程序
答案 0 :(得分:2)
您是否指定了要使用的目标数据库平台?有关信息,请参阅Specifying the Database for an Application和Java Persistence API (JPA) Extensions Reference for EclipseLink, Release 2.4。如果未设置,请尝试将其设置为Oracle10。