gpt4 book ai didi

java - persistence.xml 中的值在 EJB 中意味着什么?

转载 作者:行者123 更新时间:2023-12-01 12:51:06 27 4
gpt4 key购买 nike

我是 Java、JBoss 和 JDeveloper 的新手。我的遗留项目有这个 persistence.xml 文件:

   <persistence-unit name="DoDSRMGR">
<jta-data-source>java:/DoDSRDS</jta-data-source>
<class>dodsr.ManifestsPass1</class>
<class>dodsr.model.ManifestsPass2</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="javax.persistence.jtaDataSource" value="java:/DoDSRDS"/>
</properties>
</persistence-unit>
</persistence>

我的问题是文件中的值是什么意思以及它们的用途是什么?另外,该文件属于 EAR 文件 META-INF 或 JAR 文件 META-INF 中的什么位置?name="DoDSRMGR"指定的意义是什么?这是我从 Java 程序调用时 bean 的名称还是应用程序名称?另外“java:/DoDSRDS”是做什么的?

这是从桌面应用程序调用 bean 的方法吗: (DodsrUserSessionEJB) ctx.lookup("/dodsr/"+ejbName+"/remote");

最佳答案

<persistence-unit name="DoDSRMGR">该行允许您为持久性单元命名。当您想以这种方式实例化 EntityManager 时,可以使用持久单元名称:

EntityManager eMgr = Persistence.createEntityManagerFactory("Your persistence unit name").createEntityManager();

EntityManager 是帮助您在数据库中选择、保留、更新和删除 JPA 实体的对象。

<jta-data-source>java:/DoDSRDS</jta-data-source>这一行告诉您将如何管理持久性事务(持久、更新和删除实体)。如果你不指定这一行,每次你想从数据库中持久化、更新或删除一个实体时,你必须首先获取一个事务实例并调用 begin()在你坚持/更新/删除你的实体之后,然后你调用 commit()方法。

由于您的 XML 中已包含 jta-data-source 元素,因此无需手动调用 begin()commit()方法。您的应用程序服务器通过值 "java:/DoDSRDS" 标识的事务资源来管理事务性。

此 XML 文件可以放置在 META-INF 或 WEB-INF 文件夹中。

关于java - persistence.xml 中的值在 EJB 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24209602/

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