2014-10-31 73 views
-1

我想從具有三列的組合主鍵的視圖中獲取記錄列表。org.hibernate.QueryException:無法解析屬性:查詢中的組合鍵

我試圖在entity class中嵌入composite key。但是我收到了下面提到的錯誤。視圖的列(VW_ALERTS)是C_ID,MAT_ID,P_MONTH,CO_TYPE,CO_SUBTYPE

這裏的複合鍵是C_ID, MAT_ID, P_MONTH。我在嵌入式課堂上讓他們成爲他們的財產。

請幫助解決這個下面的代碼是用來執行HQL問題

org.hibernate.QueryException: could not resolve property: coreId of: com.sp.cpem.dto.VwAlerts [FROM com.ct.cpem.dto.VwAlerts d ORDER BY d.cId ASC] 

  Session session = sessionFactory.openSession(); 
      String hql = "FROM VwAlerts d ORDER BY d.coId ASC"; 
      Query query = session.createQuery(hql); 
      return query.list(); 

實體類:

  @SuppressWarnings("unchecked") 
      @Entity 
      @Table(schema = "TIGER", name = "VW_ALERTS") 
      public class VwAlerts { 

       @Embedded 
       private VwAlertsPK vwAlertsPK; 

       @Basic 
       @Column(name = "CO_TYPE", nullable = true) 
       private String coType; 

       @Basic 
       @Column(name = "CO_SUBTYPE", nullable = true) 
       private String coSubType; 

類用於獲取組合鍵

@Embeddable 
      public class VwAlertsPK implements Serializable { 
       @Basic 
       @Column(name = "C_ID", nullable = false) 
       private BigDecimal cId; 

       @Basic 
       @Column(name = "MAT_ID", nullable = true) 
       private BigDecimal matId; 

       @Basic 
       @Column(name = "P_MONTH", nullable = true) 
       private BigDecimal pMonth; 

我期待從視圖中的所有記錄。 我嘗試使用實體類中的@Id列,它僅通過返回視圖中第一行的重複記錄而失敗。

+0

是否有任何缺失的字段可以在發佈時在類VwAlerts和VwAlertsPK中跳過? – 2014-10-31 05:17:16

回答

0

你的實體VwAlerts只有3個屬性 - >vwAlertsPK, coType, coSubType

但在你的HQL您試圖訪問不在實體存在的屬性coreId

FROM com.ct.cpem.dto.VwAlerts d ORDER BY d.coreId ASC 

所以物業coreId添加到您的實體要不這樣您指向糾正你的實體的屬性剛剛更新ORDER BY條款。

+0

請正確閱讀我的回答,你沒有在你的Java類(意味着你的實體)的屬性,所以你爲什麼試圖在HQL中使用 – Chaitanya 2014-10-31 14:05:58

+0

我改爲「FROM com.ct.cpem.dto.VwAlerts d ORDER BY d.VwAlertsPK.cId ASC「。但現在我得到所需的清單數。當我迭代列表時,它爲我提供了空對象。 – Renga 2014-10-31 15:24:41

+0

@Renga,我無法理解你現在正在收到什麼錯誤,請更新你的問題,並提供你已經嘗試了什麼以及你用完整的堆棧跟蹤得到的異常的細節。同時提供有關您的實體的完整信息,任何人都不容易猜測您的實體擁有哪些屬性。 – Chaitanya 2014-10-31 17:24:03

相關問題