0

プロジェクトでjpaを使用しています。ただし、すべてのメソッドを呼び出して、データベースに接続する必要があります。entitymanagerfactoryと他の方法で一度データベースに接続したい。entitymanagerfactory と entitymanager を静的にしたため、トランザクションがアクティブであるというエラーが発生しました。

パブリック接続をjpaにするにはどうすればよいですか?

4

1 に答える 1

1

後で他の問題が発生すると思われるので、Java SE JPA アプリケーションの作成方法を示すこのチュートリアルに従うことをお勧めします。ここにあるより完全な基本チュートリアルは、Sun 独自のツールセットとコンポーネントに重点を置いていますが、基礎となる基本とサンプル コードが役立つ場合があります。

とにかく、開始は次のようになります。

public static void main(String[] args) {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceUnitName");
    EntityManager em = emf.createEntityManager();

    // let's start a transaction, everything we do from here on can be either
    // committed or rolled back, ensuring the integrity of our data
    em.getTransaction().begin();
    // update the database here


    // okay, done
    em.getTransaction().commit();

    // and housekeeping, close em an emf
    em.close();
    emf.close();

}

ご覧のとおり、em も emf も静的である必要はありません。プロジェクトをオブジェクトに細分する場合はem、データベースと対話するために使用するこれらのオブジェクトに を渡すことができます。また、アプリケーションのライフサイクル全体にまたがる大きなトランザクションを 1 つだけ持つことに限定されず、複数の連続したトランザクションを持つことができます。

于 2012-10-20T11:49:40.543 に答える