JPAを使用していくつかのデータベーステーブルを使用する単純なWebアプリケーションを開発しました。テーブルAとテーブルBを表Aを参照して考えてみましょう。私のアプリケーションは、開発、テスト、および製造段階のような顧客のさまざまな環境で動作します。そのため、これらの環境間でデータをエクスポート/インポートするプロセスを作成する必要があります。JPAを使用して同じ識別子を使用してデータをインポートする
オブジェクトを移動するとき、同じIDを保持したいので同じIDを保持したいと思います。 JPAでこれを行う方法はありますか?
OracleデータベースでHibernate 4.3.8を使用しています。
@Entity
@Table
public class Category
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
}
そして私はそれをやろうとしています:これは私のエンティティである
Category category = new Category();
category.setId(1L);
category.setName("Test");
EntityManager em = PersistenceManager.getEntityManager();
em.merge(category);
しかし、それは代わりに与えられたものを使用してのIDを生成するために、休止状態のシーケンスを使用しています。 merge
の代わりにpersist
を使用すると、デタッチされたオブジェクトなので例外がスローされます。
これを行う方法はありますか?
"インポートプロセス"はSQLインポートスクリプトを使用し、 "javax.persistence.XXX"プロパティを使用してインポートすると考えていたでしょう –
こんにちはNeil、それは輸出と輸入のプロセス。 SQLインポートスクリプトを使用する場合は、エクスポート側で生成する必要があります。 JPAでこれを行う方法はありますか? – chupetoide