我有两个类,分别是专家和技术,一个专家可以掌握几种技术,一种技术是由几个专家组成的。添加、更新技术独立于专家类。从专家那里删除一项技术,只删除相关的关系。
Class Expert{
Long id; // getter and setter
String name; // getter and setter;
Set<Technology> technos; // getter and setter
}
Technology{
Long id; // gettter and setter
String name; //getter and setter
}
hibernate映射中反映的两个类之间的关系是
<class name="Expert">
<!-- put the declaration for id and name -->
<set name="technos" table="EXPERT_TECHNO" cascade="delete-orphan">
<key column="id_expert"/>
<many-to-many column="id_techno" class = "Technology"/>
</set>
</class>
<class name="Technology">
<!-- put declaration for id and name-->
</class>
现在我有一个Technology的实例,我想找到所有maitrise该技术的专家,那么如何使用hibernate critera得到结果集呢?或者使用 createQuery 获取结果集的最简单方法。
我不熟悉hibernate critera方法,所以我寻求您的帮助!
进一步的问题:
当我想从专家那里删除一项技术时,我想要的只是删除表“EXPET_TECHNO”中的一行,但是,我所拥有的是expert.getTechnos.remove(techno),将从表中删除该技术我不想拥有什么!