16

那么,是否可以混合使用两种配置而不是只使用其中一种呢?

我想要的只是通过注释保留所有配置并通过 XML 读取表格。

可能吗?

非常感谢。

编辑: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="MyData" table="MyTable" >
    </class>
</hibernate-mapping>

并且不要编译 dtd。

4

1 回答 1

23

休眠文档(最新)

请注意,您可以混合使用传统的 hbm.xml 和注释方法。资源元素可以是 hbm 文件或 EJB3 XML 部署描述符。区别对于您的配置过程是透明的。

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

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

于 2011-12-27T10:18:27.667 回答