2017-07-03 102 views
0

在Spring框架中,我們有5場動態模型在春季

@Entity 
@Table(name="TblKnow") 
public class Know { 

    @Id 
    private Double idKnow; 
    private String SubjectKnow; 
    private String BodyKnow; 
    private String ImgKnow; 
    private double CountView; 

在JpaRepository設計模型屬性我只想查詢兩個列不是所有的列。

public interface KnowRepository extends JpaRepository<Know,Double> { 



    @Query("SELECT idKnow,SubjectKnow FROM Know") 
    public Page<Know> findCByOrderByIdKnowDesc(Pageable pageable); 

,但是當我嘗試運行我得到異常

java.lang.IllegalArgumentException異常如下:無法查詢創建TypedQuery一個以上的回報使用要求的結果類型[java.lang.Long中]

,但如果我下面的查詢,而不使用它是罰款

public Page<Know> findAllByOrderByIdKnowDesc(Pageable pageable); 

回答

2

您可以創建自定義的構造和使用在JPA查詢中僅選擇一些字段。

public Know(Double idKnow, String SubjectKnow) { 
    this.idKnow = idKnow; 
    this.SubjectKnow = SubjectKnow; 
} 

而且在JPA查詢中使用這個構造函數。確保你使用package的完整路徑。

@Query("SELECT NEW packagePath.Know(idKnow,SubjectKnow) FROM Know") 
1

查詢:

public Page<Know> findAllByOrderByIdKnowDesc(Pageable pageable); 

作品DUT你知道選擇與被映射到正確的專有類(或包裝成網頁後)字段的對象。

與查詢:

@Query("SELECT idKnow,SubjectKnow FROM Know") 
public Page<Know> findCByOrderByIdKnowDesc(Pageable pageable); 

返回一些custome豆/對象春天數據不能以正確的方式進入專有類映射(因爲你宣佈它的預期收益類包裹成頁)。將知識添加到Know with idKnow,SubjectKnow字段中,或者您可以將其包裝到具有idKnow,SubjectKnow字段的某個DTO中。