当前位置: 首页 > 面试题库 >

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

景俊良
2023-03-14
问题内容

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

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


问题答案:

hibernate文档(最新)

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

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

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



 类似资料:
  • 我目前正在将我的项目从Hibernate HBM映射迁移到注释。就我应付小班而言,一切都很容易。但我有相同的大型类,我尝试为这个类混合映射和注释。我了解到,通过使用hibernate属性“hibernate.mapping.priority”并将其设置为“class,hbm”而不是“hbm,class”,这是可能的。(请参阅:在Hibernate中:可以为实体混合注释和XML配置吗?) 例如,我有

  • TL;DR 有没有办法将Spring Web Security配置与注释和xml混合使用? 完整故事 对于我们的传统spring web应用程序,我们正在考虑将注释驱动配置用于web安全的一部分。 目前我们所有的网络安全(

  • 我一直使用hibernate。cfg。配置Hibernate的xml。由于各种原因,我需要将所有配置转移到Java,并且我在映射实体方面存在问题。 以前在XML中,我的映射是这样的: 一切都是注释驱动的,所以我不需要指定其他任何东西。 现在,我使用Hibernate的配置来配置一切。类,如何添加映射?我尝试了配置。addClass(Test.class)但这会引发一个错误,即file 但是在第一次

  • 问题内容: 一个运行了几个月的应用程序已经停止使用已经有几个月历史的JPA 批注。在进行集成测试时,我看到许多“ ”类型错误。 我不清楚这里出了什么问题。 我没有文件,因为我正在使用hibernate实体管理器。由于我仅使用注释,因此我的实体没有.hbm.xml文件。我的文件很小,可以正常保存。 我显然丢失了一些东西,但不能动弹。 我正在使用hibernate批注3.2.1,hibernate-e

  • 问题内容: 如果我在使用JPA /hibernate注释的POJO中具有以下映射的集合: 是否可以将加载的集合的大小限制为特定的n个值,或者将页面大小设置为延迟加载集合的前n个元素,而不加载类的其他实例中的所有项目或任何其他项目(例如@BatchSize)? 请注意,该问题使用Criteria或以任何其他方式以编程方式限制显式查询的大小,从而显式地指向POJO映射,而不进行其他查询。 我一直在寻找

  • 问题内容: 我有一个正在创建Hibernate映射的类,该类包含一个无法修改的旧对象,因此它没有必要的id字段来与Hibernate完美配合。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?我见过的唯一的嵌入对象的文档指的是对对象进行注释,而不是使用XML。 我意识到我可以扩展旧对象并对其进行适当的注释,但是这些情况可能经