2013-05-26 88 views
0

我試圖搜索JPA數據源存儲位置默認的內容以及如何指定特定位置但未發現任何內容。JPA數據源存儲位置

我發現在Tomcat下的數據庫保存的目錄裏面的Tomcat目錄下的bin /這讓我爲難的原因有兩個內部的數據源的名稱:

  1. ,因爲數據庫是不是可執行並且不應該駐留在bin/
  2. 中,因爲所有webapps共享相同的bin /目錄,因此具有相同名稱但具有兩個不同webapps的兩個數據源會發生衝突。

如果我理解正確,則數據源表示實際的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> 

== EDIT 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

你的問題不是很清楚。 Tomcat和JPA都沒有數據庫。

您應該選擇要使用的數據庫(PostgreSQL,MySQL,Oracle,DB2,HSQLDB等),安裝它並配置模式(並且在安裝過程中選擇數據必須位於何處存儲),然後使用數據庫的URL配置Tomcat和/或JPA。

看起來你正在使用一個輕量級的數據庫,它將數據存儲在當前目錄中,這恰好是Tomcat/bin目錄,因爲這是Tomcat啓動的目錄。這是一種特定於您選擇的數據庫和配置的情況,根本不是標準情況。

如果您需要關於如何使用Tomcat和JPA配置數據庫的幫助,請告訴我們您正在使用哪個數據庫,並向我們顯示當前配置。

+0

我添加了我的配置詳細信息 –

+0

這仍然不顯示您正在使用哪個數據庫以及它如何配置。這應該在tomcat的server.xml文件中定義。你從哪裏得到這個配置?誰寫的,基於什麼? –

+0

謝謝,我發現Tomcat的server.xml中缺少配置。我認爲持久性配置只在webapp配置文件中,而不是在Tomcat配置中。 –