|
I get the same error with Hibernate 4.2.3.Final even with the default value of updatable which is true. When I try to merge a detached Entity back into the persistence context and that Entity uses FetchType.LAZY on a byte[] field:
@Basic (fetch = FetchType.LAZY)
@Column (name = "LAZY_DATA", columnDefinition = "VARBINARY")
private byte[] lazyData;
It fails with the same ClassCastException:
Caused by: java.lang.ClassCastException: org.hibernate.bytecode.instrumentation.spi.LazyPropertyInitializer$1 cannot be cast to [B
at org.hibernate.type.descriptor.java.PrimitiveByteArrayTypeDescriptor.areEqual(PrimitiveByteArrayTypeDescriptor.java:42)
at org.hibernate.type.AbstractStandardBasicType.isEqual(AbstractStandardBasicType.java:205)
at org.hibernate.type.AbstractStandardBasicType.getReplacement(AbstractStandardBasicType.java:99)
at org.hibernate.type.AbstractStandardBasicType.replace(AbstractStandardBasicType.java:349)
at org.hibernate.type.TypeHelper.replace(TypeHelper.java:177)
at org.hibernate.event.internal.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:372)
at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:309)
at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:151)
at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:76)
at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:914)
at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:898)
at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:902)
at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:889)
at hibernate.HHH7573Main.main(HHH7573Main.java:39)
I've attached a SSCCE to reproduce this issue. Compile and run with these commands:
mvn clean package
mvn exec:java -Dexec.mainClass="hibernate.HHH7573Main"
|