Java JPA数据源存储位置

Java JPA数据源存储位置,java,jpa,datasource,Java,Jpa,Datasource,我试图搜索JPA数据源存储位置的默认值以及如何指定特定位置,但没有找到任何内容 我发现在Tomcat下,数据库保存在一个目录中,数据源的名称位于Tomcat目录的bin/中,这让我感到困惑,原因有两个: 因为数据库不是可执行文件,不应该驻留在bin中/ 因为所有webapp共享相同的bin/目录,所以两个名称相同但属于两个不同webapp的数据源会发生冲突 如果我理解正确,数据源表示实际的JPA底层数据库,而持久化单元将存储在数据源中的实体组合在一起。所以我应该寻找数据源的属性,而不是持久性单元

我试图搜索JPA数据源存储位置的默认值以及如何指定特定位置,但没有找到任何内容

我发现在Tomcat下,数据库保存在一个目录中,数据源的名称位于Tomcat目录的bin/中,这让我感到困惑,原因有两个:

  • 因为数据库不是可执行文件,不应该驻留在bin中/
  • 因为所有webapp共享相同的bin/目录,所以两个名称相同但属于两个不同webapp的数据源会发生冲突
  • 如果我理解正确,数据源表示实际的JPA底层数据库,而持久化单元将存储在数据源中的实体组合在一起。所以我应该寻找数据源的属性,而不是持久性单元的属性

    ==编辑==

    到目前为止,我已经在persistence.xml中声明了一个持久性单元名称,我在META-INF/context.xml中添加了此持久性单元的配置,如下所示

    <Context path="/exampleWeb">
       <ResourceLink global="ds/exampleDS" name="ds/exampleDS" type="javax.sql.DataSource"/>
    </Context>
    
    
    
    我认为要使用的数据库类型取决于我拥有的库,唯一可用的是eclipselink-2.4.1.jar

    在web.xml中,我有:

      <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>ds/exampleDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>
    
    
    数据库连接
    ds/示例
    javax.sql.DataSource
    容器
    
    ==编辑2==

    在Tomcat的server.xml中,我有

    <Resource 
    auth="Container" 
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
    maxActive="20" 
    maxIdle="10" 
    maxWait="-1" 
    name="ds/exampleDS" 
    type="javax.sql.DataSource" 
    url="jdbc:derby:exampleDB;create=true" 
      />
    

    你的问题不是很清楚。Tomcat和JPA都没有数据库

    您应该选择要使用的数据库(PostgreSQL、MySQL、Oracle、DB2、HSQLDB等),安装它并配置模式(在安装过程中选择必须存储数据的位置),然后使用数据库的URL配置Tomcat和/或JPA

    看起来您使用的是一个轻量级数据库,它将数据存储在当前目录中,而当前目录恰好是
    Tomcat/bin
    目录,因为Tomcat就是从这个目录开始的。这是一种特定于您选择的数据库和配置的情况,而不是一种标准情况


    如果您需要有关如何使用Tomcat和JPA配置数据库的帮助,请告诉我们您正在使用哪个数据库,并向我们显示当前的配置。

    我添加了配置详细信息,但仍然没有显示您正在使用哪个数据库及其配置方式。这应该在tomcat的server.xml文件中定义。您从何处获得此配置?谁写的,基于什么?谢谢,我在Tomcat的server.xml中找到了缺少的配置。我认为持久性配置只存在于webapp配置文件中,而它也存在于Tomcat配置中@JBNizet-你能给我看看persistence.xml的一些配置吗?我正在使用wildfly作为服务器。你能看看我的问题吗