4

使用: 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をフィールド条件として使用するクエリを作成します。正常に動作します。

4

1 に答える 1