如何使用Spring数据存储库的子类字段进行查询

时间:2016-10-27 11:41:14

标签: spring-data

这是我的实体类:

public class User {

    @Id
    UserIdentifier userIdentifier;
    String name;
}

public class UserIdentifier {

    String ssn;
    String id;
}

以下是我要做的事情:

public interface UserRepository extends MongoRepository<User, UserIdentifier>
{
    User findBySsn(String ssn);
}

我收到一条异常消息(运行时)说:

No property ssn found on User!

如何实现/声明此类查询?

1 个答案:

答案 0 :(得分:2)

根据Spring Data Repositories参考:

  

属性表达式只能引用被管实体的直接属性,如上例所示。在查询创建时,您已确保已解析的属性是托管域类的属性。但是,您也可以通过遍历嵌套属性来定义约束。

所以,而不是

User findBySsn(String ssn);

以下工作(在我的例子中):

User findByUserIdentifierSsn(String ssn);