一尘不染

在Hibernate中:是否可以为实体混合注释和XML配置?

hibernate

因此,可以混合使用两种配置而不是仅使用其中一种配置吗?

我想要做的就是保留所有配置(通过注释)并通过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。


阅读 268

收藏
2020-06-20

共1个答案

一尘不染

hibernate文档(最新)

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

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

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

2020-06-20