Вот моя сущность:
public class MyEntity {
@javax.persistence.Lob
java.sql.NClob prop;
public void setProp(java.sql.NClob c) {
prop=c;
}
public java.sql.NClob getProp() {
return prop;
}
}
Когда пришло время сбросить ее в базу данных, я получаю следующее исключение:
java.lang.ClassCastException: oracle.sql.NCLOB cannot be cast to java.sql.Blob
at org.hibernate.type.BlobType.getReplacement(BlobType.java:37)
at org.hibernate.type.AbstractStandardBasicType.replace(AbstractStandardBasicType.java:359)
at org.hibernate.type.TypeHelper.replace(TypeHelper.java:212)
at org.hibernate.event.def.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:600)
at org.hibernate.event.def.DefaultMergeEventListener.mergeTransientEntity(DefaultMergeEventListener.java:337)
at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:303)
at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:464)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:867)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:851)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:855)
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:851)
Почему Hibernate пытается привести его к java.sql.Blob?Могу ли я указать другой тип вместо java.sql.Blob (java.sql.Clob)?
JDK 6
JPA 2
Hibernate 3.6.8.Final
Oracle 10.2g
Postgresql 8,3 (объект считывается из базы данных Oracle, а затем записывается в базу данных Postgresql)
Я открыл ошибку на этом на JIRA