Spring data, find by property of a nested object

DraegerMTN :

I have the following code:

@Entity
public class StudentEntity {
    @Id
    private String id;
    private Student student;
    ...
}


public class Student {
    private String name;
    private List<Grade> grades;
}


public class Grade {
    private String className;
    private String grade;
}

I've set up a spring data mongodb repository and I'm trying to create a method that will return me a List<Student> based on a className that I pass in as parameter. Based on everything I've read, I assumed that the following would work:

public List<Student> findByStudentGradesClassName(final String className);

but that gives an error saying that the parameter type should be a Grade object. I really only want to pass in a String className.

Is this possible?

Andronicus :

You would have to separate nested fields with underscore:

public List<Student> findByStudent_Grades_ClassName(final String className);

Note, that you still have to start field names with uppercase.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=37161&siteId=1