eclipse - Repeated column in mapping for entity exception when trying to use same embeddable twise -



eclipse - Repeated column in mapping for entity exception when trying to use same embeddable twise -

i have entity schoolgallerypic has 2 embedded attributes of type blobfield. on execution getting error saying "repeated column mapping". using eclipse , hibernate 4.3.8.

entity:

@entity public class schoolgallerypic implements java.io.serializable { @id @generatedvalue(strategy=generationtype.sequence) private long schoolgallerypicid; @embedded @column(nullable=false) private blobfield pic; @embedded @column(nullable=false) private blobfield thumbnail; @manytoone @joincolumn(name="schoolgalleryalbumid", referencedcolumnname="schoolgalleryalbumid",nullable=false) private schoolgalleryalbum schoolgalleryalbum; @column(nullable=true) private integer sortorder; @embedded @column(nullable=false) private audittrail audittrail; private static final long serialversionuid = 1l; public schoolgallerypic() { super(); } public long getschoolgallerypicid() { homecoming schoolgallerypicid; } public void setschoolgallerypicid(long schoolgallerypicid) { this.schoolgallerypicid = schoolgallerypicid; } public blobfield getpic() { homecoming pic; } public void setpic(blobfield pic) { this.pic = pic; } public blobfield getthumbnail() { homecoming thumbnail; } public void setthumbnail(blobfield thumbnail) { this.thumbnail = thumbnail; } public schoolgalleryalbum getschoolgalleryalbum() { homecoming schoolgalleryalbum; } public void setschoolgalleryalbum(schoolgalleryalbum schoolgalleryalbum) { this.schoolgalleryalbum = schoolgalleryalbum; } public integer getsortorder() { homecoming sortorder; } public void setsortorder(integer sortorder) { this.sortorder = sortorder; } public audittrail getaudittrail() { homecoming audittrail; } public void setaudittrail(audittrail audittrail) { this.audittrail = audittrail; } @override public int hashcode() { final int prime = 31; int result = 1; result = prime * result + ((audittrail == null) ? 0 : audittrail.hashcode()); result = prime * result + ((pic == null) ? 0 : pic.hashcode()); result = prime * result + ((schoolgalleryalbum == null) ? 0 : schoolgalleryalbum .hashcode()); result = prime * result + ((schoolgallerypicid == null) ? 0 : schoolgallerypicid .hashcode()); result = prime * result + ((sortorder == null) ? 0 : sortorder.hashcode()); result = prime * result + ((thumbnail == null) ? 0 : thumbnail.hashcode()); homecoming result; } @override public boolean equals(object obj) { if (this == obj) homecoming true; if (obj == null) homecoming false; if (getclass() != obj.getclass()) homecoming false; schoolgallerypic other = (schoolgallerypic) obj; if (audittrail == null) { if (other.audittrail != null) homecoming false; } else if (!audittrail.equals(other.audittrail)) homecoming false; if (pic == null) { if (other.pic != null) homecoming false; } else if (!pic.equals(other.pic)) homecoming false; if (schoolgalleryalbum == null) { if (other.schoolgalleryalbum != null) homecoming false; } else if (!schoolgalleryalbum.equals(other.schoolgalleryalbum)) homecoming false; if (schoolgallerypicid == null) { if (other.schoolgallerypicid != null) homecoming false; } else if (!schoolgallerypicid.equals(other.schoolgallerypicid)) homecoming false; if (sortorder == null) { if (other.sortorder != null) homecoming false; } else if (!sortorder.equals(other.sortorder)) homecoming false; if (thumbnail == null) { if (other.thumbnail != null) homecoming false; } else if (!thumbnail.equals(other.thumbnail)) homecoming false; homecoming true; } }

embeddable:

@embeddable public class blobfield implements java.io.serializable { private static final long serialversionuid = -5111311566516067191l; @column(nullable=false, length=100000) @lob @basic(fetch=fetchtype.lazy) private byte[] blobfield; public blobfield() { } public byte[] getblobfield() { homecoming blobfield; } public void setblobfield(byte[] blobfield) { this.blobfield = blobfield; } @override public int hashcode() { final int prime = 31; int result = 1; result = prime * result + arrays.hashcode(blobfield); homecoming result; } @override public boolean equals(object obj) { if (this == obj) homecoming true; if (obj == null) homecoming false; if (getclass() != obj.getclass()) homecoming false; blobfield other = (blobfield) obj; if (!arrays.equals(blobfield, other.blobfield)) homecoming false; homecoming true; } }

error:

exception in thread "main" javax.persistence.persistenceexception: [persistenceunit: myclassregister] unable build hibernate sessionfactory @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl.persistenceexception(entitymanagerfactorybuilderimpl.java:1239) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl.access$600(entitymanagerfactorybuilderimpl.java:120) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl$4.perform(entitymanagerfactorybuilderimpl.java:855) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl$4.perform(entitymanagerfactorybuilderimpl.java:845) @ org.hibernate.boot.registry.classloading.internal.classloaderserviceimpl.withtccl(classloaderserviceimpl.java:398) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl.build(entitymanagerfactorybuilderimpl.java:844) @ org.hibernate.jpa.hibernatepersistenceprovider.createentitymanagerfactory(hibernatepersistenceprovider.java:75) @ org.hibernate.ejb.hibernatepersistence.createentitymanagerfactory(hibernatepersistence.java:54) @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:55) @ javax.persistence.persistence.createentitymanagerfactory(persistence.java:39) @ com.myclassregister.api.login.getschoollistactivity.getschoollist(getschoollistactivity.java:30) @ com.myclassregister.model.test.testgetschoollistactivity.main(testgetschoollistactivity.java:12) caused by: org.hibernate.mappingexception: repeated column in mapping entity: com.myclassregister.model.base.event.schoolgallerypic column: blobfield (should mapped insert="false" update="false") @ org.hibernate.mapping.persistentclass.checkcolumnduplication(persistentclass.java:709) @ org.hibernate.mapping.persistentclass.checkpropertycolumnduplication(persistentclass.java:731) @ org.hibernate.mapping.persistentclass.checkpropertycolumnduplication(persistentclass.java:727) @ org.hibernate.mapping.persistentclass.checkcolumnduplication(persistentclass.java:753) @ org.hibernate.mapping.persistentclass.validate(persistentclass.java:506) @ org.hibernate.mapping.rootclass.validate(rootclass.java:270) @ org.hibernate.cfg.configuration.validate(configuration.java:1360) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1851) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl$4.perform(entitymanagerfactorybuilderimpl.java:852) ... 9 more

since don't explicitly specify name of both blob columns map same name blobfield. have specify underlying database columns image , thumbnail explicitly.

i suggest move blobfield annotations concrete fields. illustration want load 1 column lazily while other 1 eagerly.

@column(nullable = false, length = 100000) @lob @basic(fetch=fetchtype.lazy) @embedded @attributeoverrides({ @attributeoverride(name = "blobfield", column = @column(name = "<picture column in db>")) }) private blobfield pic; @column(nullable = false, length = 100000) @lob @basic(fetch=fetchtype.lazy) @embedded @attributeoverrides({ @attributeoverride(name = "blobfield", column = @column(name = "<thumbnail column in db")) }) private blobfield thumbnail;

in case blobfield looks this:

@embeddable public class blobfield implements java.io.serializable { private static final long serialversionuid = -5111311566516067191l; private byte[] blobfield;

eclipse hibernate

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -