使用: Spring 3.1.0.RELEASE、Spring Data MongoDB 1.0.0.RELEASE
次のように定義されたドキュメント クラスがあります。
@Document
public class MyDoc
{
@Indexed
@DBRef
private User owner;
...
このリポジトリ定義を使用して、特定のユーザーのすべての MyDoc インスタンスを選択しようとしています:
public interface MyDocRepository extends CrudRepository<MyDoc, String>
{
List<MyDoc> findByOwner(User owner);
}
残念ながら、これは何も見つかりません。コードは正常に実行され、例外はありませんが、残念ながら何も見つかりません。
では、DBRef されたフィールドでドキュメントを選択する適切な方法は何ですか?
注意。この質問を見たことがありますが、DBRef されたエンティティのプロパティでフィルター処理したくないため、私のユース ケースはより単純です。
更新: リポジトリが DBRef による検索をサポートするまで、単純な回避策を使用することにしました。MongoTemplate を使用して、 com.mongodb.DBRefをフィールド条件として使用するクエリを作成します。正常に動作します。