|
From: Jara C. (JIRA) <no...@at...> - 2006-08-03 20:41:14
|
Cascade delete on one-to-one fail with "could not get a field value by reflection getter of .."
-----------------------------------------------------------------------------------------------
Key: HHH-1970
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1970
Project: Hibernate3
Type: Bug
Components: metamodel
Versions: 3.1.2
Reporter: Jara Cesnek
Two classes with relation one-to-to. When deleting exception is thrown.
After degrade relation on one-to-many all get worked.
---------First ---------------
@IdClass(DOGaa_subjekt_dopln.DOGaa_subjekt_doplnPk.class)
@MappedSuperclass
public abstract class DOGaa_subjekt_dopln extends DOParent implements DOHistorizableMain {
...
/**
* OneToOne
*/
@OneToOne(mappedBy="one_aa_subjekt_dopln")
protected DOaa_subjekt one_aa_subjekt;
@IgnoreProperty
public DOaa_subjekt getOneDOaa_subjekt() { return this.one_aa_subjekt; }
public void setOneDOaa_subjekt(DOaa_subjekt aa_subjekt) { this.one_aa_subjekt = aa_subjekt; }
@Embeddable
public static class DOGaa_subjekt_doplnPk implements Serializable {
protected Integer id_pripad;
public Integer getId_pripad() {
return id_pripad;
}
public void setId_pripad(Integer id_pripad) {
this.id_pripad = id_pripad;
}
protected Integer id_partner;
public Integer getId_partner() {
return id_partner;
}
public void setId_partner(Integer id_partner) {
this.id_partner = id_partner;
}
...
}
}
---------Second ---------------
@XmlType(name="DOaa_subjekt",namespace="http://aa.ws.daisy.marbes.cz")
@IdClass(DOGaa_subjekt.DOGaa_subjektPk.class)
@MappedSuperclass
public abstract class DOGaa_subjekt extends DOParent implements DOHistorizableMain {
....
/**
* OneToOne
*/
@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumns({
@JoinColumn(name="id_partner", referencedColumnName="id_partner", unique=false, nullable=false, insertable=false, updatable=false),
@JoinColumn(name="id_pripad", referencedColumnName="id_pripad", unique=false, nullable=false, insertable=false, updatable=false)
})
protected DOaa_subjekt_dopln one_aa_subjekt_dopln;
@IgnoreProperty
public DOaa_subjekt_dopln getOneDOaa_subjekt_dopln() { return this.one_aa_subjekt_dopln; }
public void setOneDOaa_subjekt_dopln(DOaa_subjekt_dopln aa_subjekt_dopln) { this.one_aa_subjekt_dopln = aa_subjekt_dopln; }
@Embeddable
public static class DOGaa_subjektPk implements Serializable {
protected Integer id_pripad;
public Integer getId_pripad() {
return id_pripad;
}
public void setId_pripad(Integer id_pripad) {
this.id_pripad = id_pripad;
}
protected Integer id_partner;
public Integer getId_partner() {
return id_partner;
}
public void setId_partner(Integer id_partner) {
this.id_partner = id_partner;
}
...
}
}
----------------Exception-----------------
2006-08-03 12:04:58,289 WARN http-8090-Processor2:pubal [BLKernel3] Exception invoking fellowship kernel3.editforms.savedelta
org.springframework.orm.hibernate3.HibernateSystemException: could not get a field value by reflection getter of cz.marbes.daisy.modules.aa.mdo.DOGaa_subjekt_dopln$DOGaa_subjekt_doplnPk.id_pripad; nested exception is org.hibernate.PropertyAccessException: could not get a field value by reflection getter of cz.marbes.daisy.modules.aa.mdo.DOGaa_subjekt_dopln$DOGaa_subjekt_doplnPk.id_pripad
org.hibernate.PropertyAccessException: could not get a field value by reflection getter of cz.marbes.daisy.modules.aa.mdo.DOGaa_subjekt_dopln$DOGaa_subjekt_doplnPk.id_pripad
at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:35)
at org.hibernate.tuple.AbstractComponentTuplizer.getPropertyValue(AbstractComponentTuplizer.java:61)
at org.hibernate.tuple.AbstractComponentTuplizer.getPropertyValues(AbstractComponentTuplizer.java:67)
at org.hibernate.tuple.PojoComponentTuplizer.getPropertyValues(PojoComponentTuplizer.java:98)
at org.hibernate.type.ComponentType.getPropertyValues(ComponentType.java:307)
at org.hibernate.type.ComponentType.getHashCode(ComponentType.java:158)
at org.hibernate.engine.EntityKey.generateHashCode(EntityKey.java:103)
at org.hibernate.engine.EntityKey.<init>(EntityKey.java:47)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:76)
------------------RESEARCH ---------
In hibernate is wrong assigned Entity with his IdClass.
For DOaa_subjekt_dopln there is key DOaa_subjekt_doplnPk
but
for entity DOaa_subjekt there is key DOaa_subjekt_doplnPk too!!
Or should I generated just one IdClass for all one-to-one entities ??
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|