Java Hibernate:将字符串属性映射到CLOB列
我正在努力实现这一目标。我提到了这个,但没有为我工作。这是我的实体类:Java Hibernate:将字符串属性映射到CLOB列,java,oracle,hibernate,Java,Oracle,Hibernate,我正在努力实现这一目标。我提到了这个,但没有为我工作。这是我的实体类: @Entity @Table(name = "DICTIONARY") public class Dictionary{ public Dictionary() {} @Id @GeneratedValue @Column(name = "DICTIONARY_ID") private BigDecimal dictId; @Column(name = "DICT
@Entity
@Table(name = "DICTIONARY")
public class Dictionary{
public Dictionary() {}
@Id
@GeneratedValue
@Column(name = "DICTIONARY_ID")
private BigDecimal dictId;
@Column(name = "DICTIONARY_DESCRIPTION")
private String description;
@Lob
@Column(name = "DICTIONARY_BIGTEXT_DESCRIPTION") //CLOB column in Oracle
private String bigTextDescription;
//Getters and Setters...
}
下面是我的hibernate.cfg.xml:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">........</property>
<property name="connection.username">.....</property>
<property name="connection.password">.....</property>
<property name="connection.pool_size">10</property>
<property name="connection.autocommit">false</property>
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="show_sql">true</property>
<property name="format_sql">false</property>
<property name="hibernate.jdbc.use_get_generated_keys">true</property>
<property name="hibernate.default_schema">MYDB</property>
<mapping class="com.model.to.Dictionary"/>
</session-factory>
</hibernate-configuration>
我使用的是Hibernate版本4.3.11.Final和ojdbc6 11.2.0.4.jar。如果我还缺什么,请告诉我。
提前谢谢
编辑:我只在Tomcat服务器中面对这个问题。当我在Glassfish服务器上测试时,代码运行良好。尝试使用for id
@GeneratedValue(strategy = GenerationType.AUTO)
和使用
@Lob(type = LobType.BLOB)
private String bigTextDescription;
并确保您有兼容的版本
此异常有多种解决方法。这一例外可能会发生
由于与一起使用的Tomcat服务器的版本而发生
mysql连接器java版本和dpcp实现
(commons.dbcp或tomcat dbcp)被使用,当然是它的版本
根据聊天中的讨论,OA@Shahe正在使用Tomcat 7以及
mysql连接器java版本5.1.35是最新版本,但@Shahe是
将commons.dpcp与版本1.2.2一起使用是个问题
因此,将commons dpcp版本更新为1.4或最新版本将解决此问题
这个问题
现在有点晚了,但我解决了这个问题,所以现在就发布答案。 我刚刚添加了以下依赖项,它成功了:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.0</version>
</dependency>
org.apache.commons
commons-dbcp2
2
谢谢您的回复。我正在使用Tomcat7.0。我在Eclipse中签入了Maven依赖项,但找不到任何commons dpcp jar文件。我可以检查版本吗。发布你的build.gradle或pom.xml编辑了我的问题。type=LobType.BLOB对@Lob有效吗?Ekansh Rastogi:您找到了检测commons dpcp jar的方法吗?
@Lob(type = LobType.BLOB)
private String bigTextDescription;
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.0</version>
</dependency>