2016-05-27 4 views
0

私は(例:HyperSQLとMYSQL)2つの異なるデータベースに私のテーブルを保存したいのですが、私はこのような表の注釈を複製することはできません。JPA:2つの異なるデータベースの一つの表

@Entity(name="users") 
@Table(name = "users", schema = "[email protected]_pu") 
@Table(name = "users", schema = "[email protected]_pu") 
public class UserEntitie implements Serializable {} 

を持っていますどんなアイデアでも、私のbeanクラスを複製せずにこれをどうすればいいのですか?

答えて

3

これは、アノテーションにスキーマ情報を入れないことを勧めている人がいる理由です。スキーマ情報(スキーマ名、テーブル名、カラム名など)を指定するには、orm.xmlを使用し、システムがデプロイされるデータストアごとに1つを指定します(orm.xml)。明らかに、これはデータストアごとに1つのEntityManagerFactoryを意味します。同じEntityManagerFactoryを持つ複数のデータストアに1つのクラスを永続させることはできません

注釈を使用すると、何かを一度しか指定できません。再配置するためにJavaファイルを手動で編集する必要があります。

+0

kunderaをフレームワークとして使用しているため、休止状態ではなく、orm.xmlを使用することはできません。https://github.com/impetus-opensource/Kundera/issues/276 –

+1

JPAプロバイダがJPAに準拠していると主張している場合、orm.xmlをサポートする必要があります。あなたのプロバイダは、orm.xml(基本機能)をサポートしていないらしいので、JPAに準拠していることに関するすべての記述を削除する必要があります(ユーザーの時間を浪費することはありません)。おそらく、彼らにこれを伝えてください。 JPAはJPA 1以降、orm.xmlを持っています! –

+0

@BillyFrostなぜあなたは私たちに言わないのですか?私はKundera開発者です。あなたは**どのように**すべての機能をサポートする**準拠した**を読んだのですか? Kunderaはユーザーの時間を節約します。それは[ホームページ](https://github.com/impetus-opensource/Kundera)を確認してください。私はあなたが明らかにスターガイザー、ウォッチャーなどの数を見ることができると思います。 –

関連する問題