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数据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);
}
}
答案 0 :(得分:0)
您不需要针对此类查询的自定义查询。
以下应该只是工作(如果您在Person类中的字段是“firstname” - 那是正确的吗?)
List<Person> findAllByFirstname(String firstname);
你的查询是否可以在mongo控制台上运行?