2017-12-20 12 views
1

MVCコンテキストでspringを使用しています。私はCassandraとMonogDBと一緒に働いています。プロジェクトでは、モデルとDAOクラスを両方のデータベースと互換性を持たせる必要があります。同じモデルクラスを@Documentとし、@Tableとすることは可能ですか?実行時に春は区別できるでしょうか?Spring:クラスを@Documentと@Tableの両方にすることができます

例えば、モンゴのために私は

@Document 
public class Book{ 

    @Id 
    private String uniqueId; 

    /*Other details*/ 
} 

を持つことになりますし、カサンドラのために私があれば

@Table 
public class Book{ 

    @PrimaryKeyColumn(name = "uniqueId", ordinal = 0, type = PrimaryKeyType.PARTITIONED, ordering = Ordering.ASCENDING) 
    private String uniqueId; 

    /*Other details*/ 
} 

は、私ははい、それは可能である

@Table 
@Document 
public class Book{ 

    @PrimaryKeyColumn(name = "uniqueId", ordinal = 0, type = PrimaryKeyType.PARTITIONED, ordering = Ordering.ASCENDING) 
    @Id 
    private String uniqueId; 

    /*Other details*/ 
} 
+2

尋ねる前に、まず自分で試してください。この特定のユースケースはうまくいくはずですが、 –

+0

ああ、ありがとうございます。私はそれをショットを与えるよ! – AbtPst

答えて

2

のようなものを持つことができていますあなたは正しいリポジトリ構成を持っています。具体的な詳細については、the documentationを参照してください。

2

はい、非常に可能です。典型的な例の1つは、ローカル/テスト環境と本番環境で異なるデータソースを使用する場合です。テスト環境ではMongoを使用し、運用環境ではMySqlを使用できます。したがって、spring-data-mongojavax.persistanceの注釈を同時に使用することができます。

関連する問題