gpt4 book ai didi

java - 我需要persistence.xml 中的 元素吗?

转载 作者:IT老高 更新时间:2023-10-28 11:23:16 24 4
gpt4 key购买 nike

我有一个非常简单的persistance.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
<class>pl.michalmech.eventractor.domain.User</class>
<class>pl.michalmech.eventractor.domain.Address</class>
<class>pl.michalmech.eventractor.domain.City</class>
<class>pl.michalmech.eventractor.domain.Country</class>

<properties>
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>

</persistence>

它有效。

但是当我删除 <class>元素应用程序看不到实体(所有类都用 @Entity 注释)。

是否有任何自动机制来扫描 @Entity上课?

最佳答案

persistence.xml 有一个您可以使用的 jar-file。来自 the Java EE 5 tutorial :

<persistence>
<persistence-unit name="OrderManagement">
<description>This unit manages orders and customers.
It does not rely on any vendor-specific features and can
therefore be deployed to any persistence provider.
</description>
<jta-data-source>jdbc/MyOrderDB</jta-data-source>
<jar-file>MyOrderApp.jar</jar-file>
<class>com.widgets.Order</class>
<class>com.widgets.Customer</class>
</persistence-unit>
</persistence>

这个文件定义了一个持久化单元命名为 OrderManagement,它使用JTA 感知数据源 jdbc/MyOrderDBjar-fileclass 元素指定托管持久性类:实体类、可嵌入类和映射父类(super class)。 jar-file 元素指定对包含托管持久性类的打包持久性单元可见的 JAR 文件,而 class 元素显式命名托管持久性类。

如果是 Hibernate,请查看 Chapter2. Setup and configuration也可以了解更多详情。

编辑: 实际上,如果您不介意不符合规范,Hibernate 甚至在 Java SE 中也支持自动检测。为此,请添加 hibernate.archive.autodetection 属性:

<persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
<!-- This is required to be spec compliant, Hibernate however supports
auto-detection even in JSE.
<class>pl.michalmech.eventractor.domain.User</class>
<class>pl.michalmech.eventractor.domain.Address</class>
<class>pl.michalmech.eventractor.domain.City</class>
<class>pl.michalmech.eventractor.domain.Country</class>
-->

<properties>
<!-- Scan for annotated classes and Hibernate mapping XML files -->
<property name="hibernate.archive.autodetection" value="class, hbm"/>

<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>

关于java - 我需要persistence.xml 中的<class> 元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com