私はまだ手を取り合ってmongodb、どのように最良のエンティティをマッピングできるかを模索しています。たとえば、エンティティユーザーとエンティティアドレスを例に挙げます。one-to-many誰かがバックグラウンドから来ているときがあるかもしれませんjpa。ここmongoでは使用したくありませんdbref。したがって、アドレスはSetユーザーのコレクションに含まれます。
私が使用していたと仮定しspring-data-mongoます:
質問1:ユーザーとアドレスの両方に@Document注釈を付ける必要がありますか?それともユーザーだけですか?
質問2:ユーザーのアドレスを照会するための最良の方法は何ですか。そもそも可能ですか?今はUserbyusernameまたはを取得しIdてからユーザーのアドレスを取得するためにクエリを実行しているためです。直接クエリを実行できますsub-documentか?はいの場合、spring-data-mongoCriteriaQueryを使用してどのように実行されますか。
@Document
public class User{
@Id
private Long ID;
private String username;
private Set<Address> addresses = new HashSet<Address>();
...
}
@Document
public class Address {
@Id
private Long ID;
private String city;
private String line1;
...
}