Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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:从映射迁移到注释-是否可以混合使用hbm和注释?_Java_Spring_Hibernate_Annotations_Hibernate Mapping - Fatal编程技术网

Java Hibernate:从映射迁移到注释-是否可以混合使用hbm和注释?

Java Hibernate:从映射迁移到注释-是否可以混合使用hbm和注释?,java,spring,hibernate,annotations,hibernate-mapping,Java,Spring,Hibernate,Annotations,Hibernate Mapping,我目前正在将我的项目从Hibernate HBM映射迁移到注释。 就我处理小班课程而言,一切都很容易。 但是我有相同的大型类,我尝试为这个类混合映射和注释。我了解到,通过使用hibernate属性“hibernate.mapping.preference”并将其设置为“class,hbm”而不是“hbm,class”,这是可能的。(见:) 例如,我有以下文档类: @实体 @表(name=“DOCUMENT”) 公共类文档{ @列(name=“DESCRIPTION”) 私有字符串描述; } 以

我目前正在将我的项目从Hibernate HBM映射迁移到注释。 就我处理小班课程而言,一切都很容易。 但是我有相同的大型类,我尝试为这个类混合映射和注释。我了解到,通过使用hibernate属性“hibernate.mapping.preference”并将其设置为“class,hbm”而不是“hbm,class”,这是可能的。(见:)

例如,我有以下文档类:

@实体
@表(name=“DOCUMENT”)
公共类文档{
@列(name=“DESCRIPTION”)
私有字符串描述;
}
以及以下Document.hbm.xml文件:


在我的hibernate.cfg.xml文件中,我放了:

类,hbm
我的问题是: -如果我把“class,hbm”作为优先级,那么类文档中只有我的注释 -如果我把“hbm,class”放在hbm资源中,那么我只有我的映射

有人知道是否有一种方法可以同时使用注释和HBM映射吗

谢谢

卡姆兰


PS:我使用:Hibernate4.1.4和SpringFramework3.1.1

不能将它们混用在同一个类中。结束时:

您可以将带注释的持久类和经典的hbm.cfg.xml声明与同一个SessionFactory混合使用但是,您不能多次声明一个类(无论是带注释的还是通过hbm.xml)。您也不能在实体层次结构中混合配置策略(hbm与注释)

为了简化从hbm文件到注释的迁移过程,配置机制检测注释和hbm文件之间的映射重复。然后,在类对类的基础上,HBM文件优先于注释元数据。您可以使用hibernate.mapping.preference属性更改优先级。默认值为hbm,class,将其更改为class,当发生冲突时,hbm将优先考虑带注释的类而不是hbm文件

使用注释和hbm文件两次声明一个类。因此,在类到类的基础上,一个将优先于另一个(类到类的基础意味着对于每个类,只使用hbm文件或注释)