[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-7035) Wrong NClob cast to Blob

stephan (JIRA) noreply at atlassian.com
Wed Feb 8 08:07:13 EST 2012


    [ https://hibernate.onjira.com/browse/HHH-7035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45406#comment-45406 ] 

stephan commented on HHH-7035:
------------------------------

http://stackoverflow.com/questions/9192350/hibernate-nclob-property

> 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: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list