程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

JPA persistence.xml,定义一个postgresql JTA数据源

发布于2022-12-05 21:54     阅读(1299)     评论(0)     点赞(20)     收藏(2)


我有一个 Java 应用程序,它使用 JDBC 连接到 Postgres 数据库,并使用 JPA 对其执行操作。我希望使用 JTA 事务类型,而不是本地事务类型。为此,我需要指定一个数据源。

尽管阅读了这个线程,但我仍然不知道在 xml 文件中实际放入什么,因为我不知道如何检索我的数据源的名称,和/或在哪里以及如何定义它。

当我使用RESOURCE-LOCAL事务类型时,与数据库的连接已经没有问题。我浏览过的很多主题都提到在一个名为context.xml. 一定要这个文件吗?由于在创建 JDBC 数据库连接时没有为我自动生成此类文件,因此我需要手动创建它。

简而言之,如果可以通过添加 使以下文件正常工作
<jta-data-source>something</jta-data-source>,请告诉我那是什么,或者我如何找到。否则,请告诉我如何以及在何处定义该内容。

<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 

<persistence-unit name="BankingPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>banking.Splatka</class>
    <class>banking.VlastnikKonta</class>
    <class>banking.FyzickaTransakce</class>
    <class>banking.Klient</class>
    <class>banking.PlatebniKarta</class>
    <class>banking.Transakce</class>
    <class>banking.Uver</class>
    <class>banking.Platba</class>
    <class>banking.Konto</class>
    <class>banking.BankovniPrevod</class>
    <class>DB_control.Transakceprevod</class>
    <class>banking.Transakceprevod</class>
    <class>banking.TransakcePrevod</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://xxxxxxxxxx"/>
      <property name="javax.persistence.jdbc.password" value="xxxx"/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="javax.persistence.jdbc.user" value="xxxxxxxxxxx"/>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>   </persistence-unit> </persistence>

解决方案


<jta-data-source>something</jta-data-source>

something 将是您在 J2EE 环境中的数据源的 jndi 名称。

当您引用任何数据源时,您不需要将下面的部分放在 persistence.xml 中。

<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://xxxxxxxxxx"/>
  <property name="javax.persistence.jdbc.password" value="xxxx"/>
  <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
  <property name="javax.persistence.jdbc.user" value="xxxxxxxxxxx"/>


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/583485/15bdba5a5fc9235a44c7/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)