2016-07-19 34 views
-1
public interface ConsumerRepository extends CrudRepository<Consumer, Long> { 

    List<Consumer> findByLastName(String lastName); 
    List<Consumer> findByFirstName(String firstName); 

    //List<Consumer> readExistsFirstName(String firstName); 
    //List<Consumer> getByFirstNameAndLastNameOrderByFirstName(); 
    //Collection<Consumer> findById(Long id); 
    @Query("select c from Consumer as c where c.firstName like '%?1%'") 
    Collection<Consumer> findByNameContains(String word); 

    @Query(value = "SELECT ppc_consumer FROM ppc_consumer WHERE lastname = ?1", 
      countQuery = "SELECT count(*) FROM ppc_consumer WHERE lastname = ?1", 
      nativeQuery = true) 
    Page<Consumer> findByLastname(String lastname, Pageable pageable); 
} 

ネイティブSQL SELECT *春のデータを読み込むされないが、私は@query注釈内*使用しているので*ました、「Distincが期待される」エラーが表示されますか?何が間違っていますか?@queryアノテーションは

+0

ここでネイティブクエリーを使用したいのですが?実際に直接ppc_consumerレコードをフェッチすることはできますか?あなたは詳細を教えていただけますか? – developer

+0

@developerから質問がありますか?私の答えが – danielad

答えて

1

はのは、例 -

@Query(value = "SELECT * FROM consumer WHERE lastname = :lastName LIMIT :maxRecord", nativeQuery = true) 
StickerProduct findWalletProduct(@Param("lastName") String lastName,@Param("maxRecord") Long maxRecord); 

次のように代わりに同じ行う別の方法でそれをやってみましょう詳細については、この質問を参照してください*:この方法を試してみてください

@Query(value = "SELECT c FROM consumer c WHERE lastname = :lastName LIMIT :maxRecord", nativeQuery = true) 
StickerProduct findWalletProduct(@Param("lastName") String lastName,@Param("maxRecord") Long maxRecord); 

私はそれが動作することを願っています。ありがとう

+1

ページネーションのヒント – danielad

1

* spring jpaでは*を使用できません。エイリアスを使用する必要があります。

@Query(value = "SELECT ppc FROM ppc_consumer ppc WHERE ppc.lastname = ?1", 
      countQuery = "SELECT count(ppc) FROM ppc_consumer ppc WHERE ppc.lastname = ?1") 

Does Spring Data JPA have any way to count entites using method name resolving?

+0

である場合、*あなたの例では、動作が – danielad

+0

であることを変更すると、それは 'nativeQuery = true'コマンドのためです。私は答えを編集する、私はそれを削除しようとし、それは私のために働く。 – amicoderozer

+0

あなたの例も完全に機能していますが、例を追加することもできます。 – danielad

関連する問題