2016-08-25 173 views
0

我試圖使用j2ee和hibernate在兩個實體之間建立連接。 但我得到以下錯誤:爲TypedQuery指定的類型與查詢返回類型不兼容[class java.lang.Double]

java.lang.IllegalArgumentException: Type specified for TypedQuery is incompatible with query return type [class java.lang.Double]

這是我試圖讓工作

Query query = entityManager 
       .createQuery("SELECT avg(responseEnd - responseStart) FROM QualiteDeService q join q.test",QualiteDeService.class); 

查詢而這些實體:

@Entity 
    public class QualiteDeService { 

     private int id_qualite_service; 
      private Test test; 

     @Id  
     @GeneratedValue(strategy=GenerationType.IDENTITY) 
     public int getId_qualite_service() { 
      return id_qualite_service; 
     } 
     @ManyToOne 
     @JoinColumn(name = "id_test", referencedColumnName = "id_test", insertable = false, updatable = false) 
     public Test getTest() { 
      return test; 
     } 
     public void setTest(Test test) { 
      this.test = test; 
     } 
    } 


    @Entity 
    public class Test implements Serializable{ 
    private int id_test; 
private int note; 

    @Id  
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    public int getId_test() { 
     return id_test; 
    } 
    public void setId_test(int id_test) { 
     this.id_test = id_test; 
    } 
    } 

回答

3

的查詢返回類型需要與您要在其中進行投射的實體對象兼容。更新您的代碼

entityManager.createQuery("SELECT avg(responseEnd - responseStart) FROM QualiteDeService q join q.test",Double.class);