私はこのように定義された契約のクラスを持っている:SpringのデータMongoDB:ドキュメントが別のドキュメントに埋め込まれていると、一意のインデックスフィールドを無視する方法はありますか?
@Document
public class Contract {
@Id
private String id;
@Indexed(unique = true)
private String ref;
private String status = "pending";
// getter & setter & hashcode & equals & tostring...
}
私は時間をかけて契約状態を保存したいので、私は、このようなバージョンのクラスを作成しました:私は複数回を保存しようとすると
@Document
public class Version {
@Id
private String id;
private Contract contract;
private Instant createdAt;
// getter & setter & hashcode & equals & tostring...
}
を時間の経過とともにバージョンオブジェクト、私は重複するキーの例外があります。私はそれがここで不平を言う契約のrefの重複キーインデックスだと思う。
このようなことをどのように達成できますか?
はあなたの問題を披露小さなコードスニペットを提供してもらえますか?モデルを記述したやり方では、Contactオブジェクトがバージョン1内にネストされているため、バージョン内の連絡先がサブ文書として「バージョン」に格納され、 「連絡先」のコレクションは重要ではありません。 –
私はそれ以上書いていません。一意のインデックスを持つ別のオブジェクトにネストされた2つのオブジェクトを作成し、同じ基本コントラストを持つ2つのオブジェクトを保存しようとすると、重複したエントリ例外が発生します。 –