我目前正在将我的项目从 Hibernate HBM Mappings 迁移到 Annotations。就我处理小班而言,一切都很容易。但是我有同样巨大的类,我尝试为这个类混合映射和注释。我读到这可以通过使用休眠属性“hibernate.mapping.precedence”并将其设置为“class,hbm”而不是“hbm,class”。(请参阅:在 Hibernate 中:是否可以为实体混合注释和 XML 配置?)
例如,我有以下 Document 类:
@Entity
@Table(name="DOCUMENT")
public class Document {
@Column(name="DESCRIPTION")
private String description;
}
和以下 Document.hbm.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Document" table="DOCUMENT" >
<id name="id" column="DOCUMENT_ID" type="long" />
</class>
</hibernate-mapping>
在我的 hibernate.cfg.xml 文件中,我放了:
<property name="hibernate.mapping.precedence">class, hbm</property>
<mapping class="Document"/>
<mapping resource="Document.hbm.xml"/>
我的问题是: - 如果我把“class, hbm”作为优先级,那么我在类 Document 中只有我的注释 - 如果我把“hbm,class”那么我只有我的映射在 hbm 资源中
有谁知道是否有办法同时拥有注释和 HBM 映射?
谢谢
卡姆兰
PS:我使用:Hibernate 4.1.4 和 Spring Framework 3.1.1