Wrong NClob cast to Blob
------------------------
Key: HHH-7035
URL:
https://hibernate.onjira.com/browse/HHH-7035
Project: Hibernate ORM
Issue Type: Bug
Components: entity-manager
Affects Versions: 3.6.8
Environment: jpa 2
jdk 6
ojdbc6-11.2.0.2.0
Reporter: stephan
Labels: dialect, hibernate, jpa2, oracle, postgresql
I read an entity from an Oracle 10gR2 database and the I try to write it to a Postgresql
8.3.14 dataabse.
Here the entity :
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;
}
}
When it's time to flush it to database, I get this exception :
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 should try to cast to a java.sql.Clob because oracle.sql.NClob implements
java.sql.Clob
--
This message is automatically generated by JIRA.
For more information on JIRA, see: