Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 从实体生成表-JTA_Jakarta Ee_Jpa_Glassfish - Fatal编程技术网

Jakarta ee 从实体生成表-JTA

Jakarta ee 从实体生成表-JTA,jakarta-ee,jpa,glassfish,Jakarta Ee,Jpa,Glassfish,我使用JPA工具从@Entity类生成表。当设置为RESOURCE\u LOCAL时,它工作正常。但是,当我在glassfish服务器上设置了数据源并相应地修改了persistence.xml后,它会停止运行,出现一个异常: javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.

我使用JPA工具从
@Entity
类生成表。当设置为
RESOURCE\u LOCAL
时,它工作正常。但是,当我在glassfish服务器上设置了数据源并相应地修改了
persistence.xml
后,它会停止运行,出现一个异常:

javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [jdbc/mysqltest].
Internal Exception: javax.naming.NamingException: Lookup failed for 'jdbc/mysqltest' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
...
因此,每次我想要修改表结构时,我都需要将其更改回来


org.eclipse.persistence.jpa.PersistenceProvider
jdbc/footest


org.eclipse.persistence.jpa.PersistenceProvider

有没有一种不用触摸配置就可以使用表生成工具的方法?

jta数据源名称是否有效?尝试完全限定URL

<jta-data-source>java:/jdbc/footest</jta-data-source>
java:/jdbc/footest

谢谢您的回复。数据源正在工作,我能够使用实体管理器并从数据库返回结果。我也试过你的建议。但是,在生成表的过程中,异常仍然是相同的。
<persistence ...>
    <persistence-unit name="Foo" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>
            <property name="eclipselink.target-server" value="None"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
        </properties>
    </persistence-unit>
</persistence>
<jta-data-source>java:/jdbc/footest</jta-data-source>