【发布时间】:2014-12-27 07:13:24
【问题描述】:
我正在尝试从具有三列复合主键的视图中获取记录列表。
我尝试将composite key 嵌入entity class。但是我收到了下面提到的错误。视图 (VW_ALERTS) 的列是 C_ID、MAT_ID、P_MONTH、CO_TYPE、CO_SUBTYPE。
这里的复合键是C_ID, MAT_ID, P_MONTH。我正在将它们的属性放入可嵌入类中。
请帮忙解决问题
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]
以下代码用于执行 hql。
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 列,但由于仅返回视图中第一行的重复记录而失败。
【问题讨论】:
-
在
VwAlerts和VwAlertsPK的课堂上发帖时是否有遗漏的字段?
标签: java hibernate hibernate-mapping