簡體   English   中英

使用JPA從現有數據庫檢索信息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM