java - hibernate table per concrete class @AssociateOverride still using parent attribute to join -
i implemented hibernate table per concrete class. , model following,
@entity @inheritance(strategy=inheritancetype.table_per_class) @tablegenerator(name="baseform", table="baseform_sequence", allocationsize=1) public abstract class baseform implements serializable { @id @generatedvalue(strategy = generationtype.table, generator="baseform") @xmltransient protected long id; public long getid() { return id; } public void setid(long id) { this.id = id; } @joincolumn(name = "form_id") @onetomany(cascade = cascadetype.all, fetch = fetchtype.eager) @cascade(value = org.hibernate.annotations.cascadetype.delete_orphan) @fetch(fetchmode.subselect) @orderby("id") protected list<casenumber> casenumberlist = new arraylist<casenumber>(); public list<casenumber> getcasenumberlist() { return casenumberlist; } public void setcasenumberlist(list<casenumber> casenumberlist) { this.casenumberlist = casenumberlist; } }
i have following 2 entities extending baseform,
@entity @table(name = "form_a") @associationoverrides({ @associationoverride(name = "casenumberlist", joincolumns = @joincolumn(name = "forma_id")) }) public class forma extends baseform { } @entity @table(name = "form_b") @associationoverrides({ @associationoverride(name = "casenumberlist", joincolumns = @joincolumn(name = "formb_id")) }) public class formb extends baseform { }
whenever try query baseform , getcasenumberslist() still uses parent joincolumn , doesn't apply associateoverride,
list<baseform> baseformlist = new arraylist<baseform>(); detachedcriteria basecr = detachedcriteria.forclass(baseform.class); basecr.add(restrictions.like("organizationid", orgid, matchmode.anywhere)); basecr.setresulttransformer(criteriaspecification.distinct_root_entity); baseformlist = (list<baseform>) ht.findbycriteria(basecr); for(baseform form : baseformlist){ if(!form.getcasenumberslist().isempty()){ baseformlist.add(form); } }
i appreciate if has idea or fix issue?
Comments
Post a Comment