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

时间:2014-06-13 16:05:09

标签: java jboss7.x persistence.xml

我是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”);

1 个答案:

答案 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文件夹中。