簡體   English   中英

MFP Java適配器上的JPA

[英]JPA on MFP Java adapter

我已經在MFP 7.0中創建了Java適配器。 適配器正在本地開發服務器(Liberty)上運行。 由於我在文檔中找不到任何參考,因此是否有可能在Java適配器中使用JPA訪問數據庫數據?

我需要將persistence.xml放在哪里? 我在Liberty概要文件server.xml上需要做任何配置嗎? 我需要在哪里放置數據庫驅動程序的庫jar(EclipseLink)?

附件中,您將找到Java適配器中的代碼:

@GET
public String performJPAQuery(){
    String result = null;

    Person marco = new Person();
    marco.setId(1);
    marco.setName("Marco");

    // connection details should be loaded from persistence.xml
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa-test");

    EntityManager em = emf.createEntityManager();

    EntityTransaction tx = em.getTransaction();

    tx.begin();

    em.persist(marco);

    tx.commit();

    // Querying the contents of the database using JPQL query
    Query q = em.createQuery("SELECT p FROM Person p");

    @SuppressWarnings("unchecked")
    List<Person> results = q.getResultList();

    logger.info("List of persons\n----------------");

    for (Person p : results) {
        logger.info(p.getName() + " (id=" + p.getId() + ")");
    }

    // Closing connection
    em.close();

    emf.close();

    return result;
}

這是我的persistence.xml的樣子:

<?xml version="1.0" 
  encoding="UTF-8"?>
<persistence version="2.0" 
         xmlns="http://java.sun.com/xml/ns/persistence" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

    <persistence-unit name="jpa-test" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>com.sample.Person</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.sqlite.JDBC" />
            <property name="javax.persistence.jdbc.url" value="jdbc:sqlite:sample.db" />
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode" value="database" />
        </properties>
    </persistence-unit>
</persistence>

那絕對是可能的。 該位置persistence.xml文件應說明這里 除此之外,您還必須:

  1. 使用使用JNDI的連接(在這種情況下,您不需要javax.persistence.jdbc.url參數)。
  2. 沿到javax.persistence.jdbc.url參數把用戶證書到您的數據庫中的persistence.xml(如果你去這個選項谷歌的它,因為它依賴於JPA / EclipseLink的vesion,但也許是一個良好的開端)。
  3. 手動全部實例化,在這種情況下,您不需要persistence.xml文件。 此選項復雜得多,但也更靈活。 我曾經使用過Hibernate,因此無法使用EclipseLink。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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