2011-11-19 97 views
1

我试图找到如何做JPA项目(使用EJB 3.x)的很好的参考。JPA on JBoss As 6.X or 7

我很难找到如何根据jBoss配置持久性单元。 (在GlassFish中它只是一小块蛋糕)。

是你谁知道很好的参考

+0

您是否解决了您的问题?我现在将我的应用程序移植到Glassfish,并希望我所需要做的就是更新我的数据源。 – simgineer

回答

2

我刚刚将我在NetBeans上开发的应用程序从Glassfish 3移植到JBoss 6.我必须disable JTA才能工作,但由于此刻我不需要这样做,所以什么都比没有好。

我正在使用容器管理的安全性并在此post中记录了我的配置。

我通过将mysql-ds.xml放入$JBOSS_HOME\server\default\deploy来配置我的JBoss 6数据源。这里是内容:

<datasources> 
    <local-tx-datasource> 
    <jndi-name>jdbc/thor_ds</jndi-name> 
    <connection-url>jdbc:mysql://localhost:3306/thor</connection-url> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <user-name>mjolnir</user-name> 
    <password>mjolnir</password> 
    <exception-sorter-class-name> 
     org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter 
    </exception-sorter-class-name> 
    <metadata> 
     <type-mapping>mySQL</type-mapping> 
    </metadata> 
    </local-tx-datasource> 
</datasources> 

与Glassfish不同,在JBoss 6中,我不得不明确地声明每个持久化类。这是我的持久性XML:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 

    <persistence-unit name="AvengersPU" transaction-type="RESOURCE_LOCAL"> 
     <!--<persistence-unit name="AvengersPU" transaction-type="JTA">--> 
    <jta-data-source>java:/jdbc/thor_ds</jta-data-source> 
    <non-jta-data-source>java:/jdbc/thor_ds</non-jta-data-source> 
    <class>avenger.Grouptable</class> 
    <class>avenger.MyUser</class> 
    <exclude-unlisted-classes>true</exclude-unlisted-classes> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
    </properties> 
    </persistence-unit> 
</persistence> 
0

有一个在JPA方面应用服务器之间没有什么区别。就像你为Glasfish做的一样。

唯一的区别是配置数据源 - 但有足够的谷歌结果。

0

配置完persistence.xml之后,您应该准备好了,因为JPA是Java EE标准,应该是独立于应用程序服务器的。