1

以下のリンクを見ると、構成中に実行するように注釈が付けられたコードでデータソースとエンティティ マネージャー ファクトリを定義する方法が非常に明確にわかります。

http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#d0e993

私が知りたいのは、初期化後にこれを行う方法があるかどうかです? ユーザーがアップロードして情報を抽出し、それをサーバー上のmysql dbに入れる予定のsqliteファイルへのデータソースを動的に作成したいと考えています。私は、永続性と orm のために hibernate と jpa を使用し、すべてのデータベース アクセスのためにスプリング リポジトリを使用しています。jdbc を使用し、クエリを使用して sqlite から情報にアクセスできることはわかっていますが、このデータをコピーできるようにするために既に多くのコードが記述されているため、これらのクエリをすべて記述して書き直す必要がないことは非常に便利です。コード。

ファイルのプールを使用して、それらをクリアする間に繰り返し処理することで、これらの sqlite ファイルをアップロードされたファイルに置き換えて、事前定義されたファイルにアクセスできるようにすることができますが、これはあまり望ましくありません。ファイルをアップロードし、それを新しい sqlite データソースとして宣言し、それを抽象ルーティング データソースに提供して、データソース間で切り替えることができるようにしたいと考えています。

現在、データソースを xml で定義しており、抽象ルーティング データソースを使用してそれらを切り替えるだけです。

4

1 に答える 1

0

インスタンスをラッパーに挿入しEntityManagerFactory、必要なすべてのコードにEntityManagerこのラッパーを呼び出させようとします。ラッパーはsetDataSource、SQLiteファイルまたはすべてのパラメーターで構築されたデータソースを取得し、EntityManagerFactoryリフレクションを介してインスタンスのデータソースを設定できるメソッドも提供します。したがって、これ以降のEntityManagerインスタンスEntityManagerFactoryは同じ永続性ユニットを使用しますが、新しいSQLiteデータソースに対して使用します。

于 2012-12-03T16:55:36.437 に答える