3
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;   

 @Repository    
    public interface PersonRepository extends MongoRepository<Person, String> {

            @Query("{ 'firstname' : ?0 }")
            List<Person> findByFirstname(String firstname);

        }

我在 MongoDB 中使用 spring data jpa。我能够使用存储库保存、删除或检索(所有记录)。

我正在尝试根据属性值检索记录。(如上所示的自定义查询)。这不起作用。

有人可以帮我找出如何在 MongoRepository 中编写自定义查询,我可以在其中传递列值并获取匹配的行。

编辑:

添加代码。

@Document/*(collection = "person")*/
public class Person {

    @Id
    private String id;

    private String firstName;

    private String lastName;

    private Address address;
          // gettters and setters
}

@Service
public class PersonServiceImpl{

          @Autowired
    private PersonRepository personRepository;

          public Person findPersonByFirstName(String firstName) {

        List<Person> person = personRepository.findAllByFirstName(firstName);

        System.out.println("** Data Retrieved **" );

        return person.get(0);
    }
}
4

1 回答 1

0

这种查询不需要自定义查询。

以下应该可以工作(假设您在 Person 类中的字段是“名字” - 对吗?)

List<Person> findAllByFirstname(String firstname);

您的查询是否可以从 mongo 控制台工作?

于 2013-12-09T17:43:40.707 回答