Java/Hibernate比较器
我们去上课吧Java/Hibernate比较器,java,hibernate,comparison,compare,Java,Hibernate,Comparison,Compare,我们去上课吧 class Foo 这个类有两个比较器 class Comparator1 implements Comparator<Foo> class Comparator2 implements Comparator<Foo> 在xml映射中 <set name="foos" sort="com.package.Comparator2" fetch="subselect&qu
class Foo
这个类有两个比较器
class Comparator1 implements Comparator<Foo>
class Comparator2 implements Comparator<Foo>
在xml映射中
<set name="foos"
sort="com.package.Comparator2"
fetch="subselect">
<key column="column" not-null="true"/>
<one-to-many class="Foo" />
</set>
从数据库加载集合后,hibernate将使用哪个比较器,持久化后将使用哪个比较器?我可以在本地修改中使用比较器1,但用于加载和保存比较器2?当Hibernate从数据库加载实体时,任何集合都将被重写,因为它需要使用自己的Set实现。如果您创建了一个全新的对象并将其持久化,那么Comparator1仍然在使用,因为它仍然是您的收藏,它不是Hibernate的代理。根据我在数据库中读取的数据判断,将使用
Comparator2
对数据进行排序,当您加载数据时,它自然会使用Comparator2
加载集prof数据库后Hibernate将使用哪个比较器-您可以重新表述它吗?
<set name="foos"
sort="com.package.Comparator2"
fetch="subselect">
<key column="column" not-null="true"/>
<one-to-many class="Foo" />
</set>