@Entity
@EntityListeners(AuditingEntityListener.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TIPO_CONTRATO", discriminatorType = DiscriminatorType.STRING)
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class Contrato extends AuditorEntity implements Serializable, Clonable {
@Column(name = "CIF_NIF")
@JsonView(Views.Buscador.class)
@JsonProperty("cifNif")
private String cifNif;
@Column(name = "NOMBRE_SOCIEDAD_PERSONA")
@JsonView(Views.Buscador.class)
private String nombreSociedadPersona;
}
我CuentaBancaria從Contrato表中呼叫了這個 Embeddable 類:
@Embeddable
public class CuentaBancaria implements Serializable {
private static final long serialVersionUID = 6835775213299596371L;
@Column(name = "TITULAR_CUENTA")
@JsonView(Views.Completo.class)
private String titularCuenta;
}
在ContratoRepository我試圖做一個JPA查詢找到“titularCuenta由” CUENTA Bancaria發現場cifNif的場Contrato。但它不起作用。我能做些什么來解決這個問題?
@Query(value="SELECT c.CuentaBancaria.titularCuenta FROM Contrato c WHERE c.cifNif= ?1 AND c.nombreSociedadPersona IS NOT NULL AND ROWNUM = 1")
public String getNombreLegalCliente(String cifNif);
拋出的錯誤:
引起:org.hibernate.QueryException:無法決議屬性:CuentaBancaria:com.xxxx.Contrato
uj5u.com熱心網友回復:
你CuentaBancaria在Contrato課堂上缺少欄位。這就是 JQL 抱怨的原因。
在類中添加帶有@Embedded注釋的欄位:
public class Contrato extends AuditorEntity implements Serializable, Clonable {
@Embedded
private CuentaBancaria cuentaBancaria;
}
并將 JQL 運算式修復為:
@Query(value="SELECT c.cuentaBancaria.titularCuenta FROM Contrato c WHERE c.cifNif= ?1 AND c.nombreSociedadPersona IS NOT NULL AND ROWNUM = 1")
public String getNombreLegalCliente(String cifNif);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369939.html
標籤:弹簧靴
上一篇:API設計:回應資料跟蹤分析
