2016-05-31 73 views
0

我所有的倉庫都延伸的回報正在擴展JpaRepository和JpaSpecification麻煩彈簧JPA數據原生SQL查詢

public interface CommonReadRepository<T> 
     extends JpaRepository<T, Long>, JpaSpecificationExecutor<T> { 

我想在CommonReadRepository定義原生SQL查詢像commonService庫: 的Mysql表格限制1,20;

@Query(值= 「SELECT * FROM?1限制嗎?2,?3」,nativeQuery = TRUE)

List<?> customFindQuery(String tableName,int offset,int limit); 

但我收到SqlGrammerException不幸的是,我沒有找到太多關於文檔中的語法。

我知道如果我可以在存儲庫中定義查詢,那麼我知道表名,但它可以使它通用?在Spring數據定義

感謝

+0

也許如果您發佈完整的堆棧跟蹤,然後將有更多的信息,以實際給某事物發表意見。更像是一個MySQL異常... –

回答

1

基地庫科reference

按照類似下面的參考定義的準則:

@NoRepositoryBean 
interface CommonReadRepository<T, ID extends Serializable> extends JpaRepository<T, ID> { 

    List<T> custonFindQuery(); 
} 
@Repository 
interface UserRepository extends CommonReadRepository<User, Long> { 
    User findByEmailAddress(EmailAddress emailAddress); 
} 

對於您的具體問題List<?> customFindQuery(String tableName,int offset,int limit);

其已通過調用方法支持JpaRepository

Page<T> findAll(Pageable pageable) 

例如:

Page<User> all = userRepository .findAll(new PageRequest(3, 10)); 

其中offest = 30(3×10),並限制= 10