JPA数据源存储位置

时间:2013-05-26 13:32:22

标签: java jpa datasource

我尝试搜索JPA数据源存储位置默认的内容以及如何指定特定位置但是找不到任何内容。

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

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

    == EDIT ==

    到目前为止,我已在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>
    

    ==编辑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" 
      />
    

1 个答案:

答案 0 :(得分:1)

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

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

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

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