Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/Hibernate比较器_Java_Hibernate_Comparison_Compare - Fatal编程技术网

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>