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