2014-10-31 74 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

相关问题