[英]Retrieve information from existing database using JPA
我正在使用JPA(EclipseLink)開發Java Web Project來連接我們的數據庫。 我有一個持久性單元,在其中配置了要持久保存數據的數據庫。 問題是我還必須訪問已經創建並填充了信息的另一個數據庫,而我只想訪問該數據庫的一個表以檢索一些信息。 我如何僅使用JPA來檢索信息(既不保存也不更新任何內容)來訪問它。
設置實體管理器后,您可以運行本機查詢:
entityManager.createNativeQuery("SELECT ...");
因此,您可以創建另一個持久化單元Poit到您的其他數據庫
<persistence-unit name="read-and-write-database">
...
<properties>
<!-- conection -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/database-write" />
<.../>
</properties>
</persistence-unit>
<persistence-unit name="read-database">
...
<properties>
<!-- conection -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/database-read" />
<.../>
</properties>
</persistence-unit>
並且,在SE環境中,您可能會想要創建EntityManager:
EntityManagerFactory readWriteEntityManagerFactory = Persistence.createEntityManagerFactory("read-and-write-database");
EntityManager readWriteEntityManager = readWriteEntityManagerFactory.createEntityManager();
EntityManagerFactory readEntityManagerFactory = Persistence.createEntityManagerFactory("read-database");
EntityManager readEntityManager = readEntityManagerFactory.createEntityManager();
如果您在容器中,則PersistenceContext注釋具有unitName字段 ,可用於定義持久單元
請記住,這樣做,您將擁有兩個不同的持久性上下文。 因此,對其中一個所做的更改在數據持久化之前不會對另一項“可見”。
obs:對不起任何錯字。
我希望這可以幫助你。 干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.