我是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”);
答案 0 :(得分:1)
<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文件夹中。