2016-05-02 9 views
1

SpringDataの使用MongoDB(spring-data-mongodb 1.9.1.RELEASE)@DBRefでリンクされたユーザーの役割に基づいてユーザーを照会する必要があります。SpringData MongoDB findBy DBRefの使用

ユーザー

@Document(collection = "user") 
public class User { 
    private String userName; 
    private boolean isActive; 
    @DBRef 
    private List<Role> roles; 
} 

役割

@Document(collection = "role") 
public class Role { 
    private String roleName; 
    private String description; 
    private long roleNum; 
} 

ユーザーリポジトリ

@Repository 
public interface UserRepository extends MongoRepository<User, String> { 

    public User findByUserName(String username); 

    @Query(value = "{'roles.$roleName' : ?0}") 
    public List<User> findByRolesRoleName(String roleName); 
} 

question similarは尋ねたが、答えはないされています。このタイプのfindByがサポートされていない可能性があります。

これはかなり単純ですが、findByRolesRoleNameの結果は常に空のリスト(サイズ= 0)です。

このタイプの関係でfindByを正しく使用している人はいますか?

答えて

3

idの属性はDBRefでMongoDB自体では照会できません。したがって、Spring Data MongoDBを使用することはできません。

+0

それは私の疑いでした。検証してくれてありがとう。 – bwoodson

関連する問題