1
Below is my perisistence.xml, having the datasource.

<persistence-unit name="employee" transaction-type="RESOURCE_LOCAL">
    <non-jta-data-source>jdbc/MyDS</non-jta-data-source>
</persistence-unit>

スタンドアロンで createEntityManager を実行しようとしていますが、サンプル クエリを実行できません。助けてください。

public static void main(String[] args) {

Map<String, String> properties = new HashMap<String, String>();

        // Ensure RESOURCE_LOCAL transactions is used.
        properties.put("javax.persistence.transactionType",
            PersistenceUnitTransactionType.RESOURCE_LOCAL.name());

        // Configure the internal EclipseLink connection pool
        properties.put("javax.persistence.jdbc.driver" , "oracle.jdbc.OracleDriver");
        properties.put("javax.persistence.jdbc.url", "jdbc:oracle:thin:@localhost:1521:ORCL");
        properties.put("javax.persistence.jdbc.user", "scott");
        properties.put("javax.persistence.jdbc.password", "tiger");

        // Ensure that no server-platform is configured
        properties.put("eclipselink.target-server", TargetServer.None);

        entityManagerFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME,properties);
        entityManager = entityManagerFactory.createEntityManager();                 
        Query query = entityManager.createQuery(" select d from  XyzEntity d");
        List<XyzEntity> xyzEntityList = query.getResultList();
        System.out.println("size is"+xyzEntityList.size());
    }

上記のコードはまだデータソースを探しています。

私を助けてください。

4

1 に答える 1

1

次のように、 <non-jta-data-source> タグを削除し、クラスに配置したプロパティを削除して、persistence.xml ファイルに追加します。

<properties>
  <property name="javax.persistence.jdbc.driver" value="the.driver"/>
  <property name="javax.persistence.jdbc.url" value="the url"/>
  <property name="javax.persistence.jdbc.user" value="the user"/>
  <property name="javax.persistence.jdbc.password" value="the pass"/>
</properties>

<persistence-unit> タグの下に永続化プロバイダーも追加する必要があります。

<provider>bla.bla.bla.bla.BlaProvider</provider>

お役に立てれば。

于 2013-02-26T22:40:23.707 に答える