hi there!
I was using this
http://www.hibernate.org/118.html#A11 suggestion to build my mapping.
my looks the following way:
Code:
<class name="com.op.objects.Candidate" table="candidates">
<id name="id" column="cand_CandId" type="long" unsaved-value="0">
<generator class="native" />
</id>
...
<set name="skills" table="cand_skillset" lazy="true" inverse="true" cascade="all-delete-orphan">
<key column="candskill_CandId"/>
<composite-element class="com.op.objects.CandidateSkill">
<property name="numberOfYears" type="integer" column="candskill_Years"/>
<many-to-one name="skill" class="com.op.objects.Skill" column="candskill_SkillId"/>
</composite-element>
</set>
...
</class>
everything works perfectly well while fetching already existed information in database.
so, for each
com.op.objects.Candidate object we have Set of
com.op.objects.CandidateSkill objects, for each of them we can call .getSkill() and get
com.op.objects.Skill object. everything is perfect from this side.
but how can we remove any
com.op.objects.CandidateSkill from Set?
I thought that
"all-delete-orphan" at least somehow will help me, but when I am doing (i.e. for candidate with id = 10):
Code:
...
Candidate per = (Candidate) sess.get(Candidate.class, new Long(10));
sess.delete(per);
...
I am getting an exception
No persister for: com.op.objects.CandidateSkill...
is there any way out?
thank you in advance!