运行get请求时,我会得到一个异常o.h.engine.jdbc.spi.sqlexceptionhelper:堆栈跟踪中“field list”中的未知列“DisbourseMe0\u0.reason\u type”,即使我在entity类中正确配置了字段。我有一个springbootsoap接口,它正在查询mysql数据库视图。我已经从父表中指定了一个惟一键作为jpa中的视图id。
实体类的一部分具有:
@Entity
@Table(name="disbursement_payload")
public class Disbursement {
@Id
@Column(name="ID")
private long disbursementId;
@Column(name="ReasonType")
private String reasonType;
public long getDisbursementId() {
return disbursementId;
}
public void setDisbursementId(long disbursementId) {
this.disbursementId = disbursementId;
public String getReasonType() {
return reasonType;
}
public void setReasonType(String reasonType) {
this.reasonType = reasonType;
}
我的观点是:
CREATE VIEW disbursement_payload AS (
SELECT
iso_number AS Currency,
trans_desc AS ReasonType,
account_number AS ReceiverParty,
amount AS Amount
FROM m_payment_detail, m_loan_transaction
WHERE m_payment_detail.`id`= m_loan_transaction.`payment_detail_id` AND
m_payment_detail.`payment_type_id`=2
);
实体或视图定义中是否缺少某些内容?我在这里读到了一条评论:无法在hibernate中提取resultset,我可能必须显式地定义父模式。任何帮助,非常感谢。
1条答案
按热度按时间wmomyfyw1#
在基于下划线的camelcase转换的基础上进行db列和类var名称的Map
_
分隔名称你可以试着用
视图代码是sql代码,hibernate将视图视为表,因此列名的转换基于相同的规则
还有一个建议,基于where条件,您不应该使用(较旧的)隐式连接,您应该使用(较新的)explici join sintax。。