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クラスのフィールドが「firstname」である場合-そうですか?)

List<Person> findAllByFirstname(String firstname);

クエリは mongo コンソールから機能しますか?

于 2013-12-09T17:43:40.707 に答える