0
下面的查詢在mysql中正常工作。Custome Spring中的錯誤-JPA
SELECT * FROM utilization u INNER JOIN sbg s on s.sbg_code=u.sbg_code where u.sbg_code=104
我在下面寫了JPQL查詢。
@Query("SELECT i FROM Utilization i,i.sbg s where s.sbgCode = :sbgCode")
public ArrayList<Utilization> findUtilization(@Param("sbgCode") int sbgCode);
我得到以下錯誤,請告知如何解決這個錯誤
產生的原因:org.hibernate.hql.internal.ast.QuerySyntaxException:i.sbg沒有映射[選擇I從be.g00glen00b.model.Utilization我,i.sbg s其中s.sbgCode =:sbgCode]
你能告訴我怎麼寫上面的SQL查詢來JPQL查詢? 請建議一些鏈接學習JPQL加入,因爲我是新手。
下面類表示兩個表
SBG類
@Entity public class sbg { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int sbgCode; private String sbgdesc; @ManyToOne(fetch=FetchType.EAGER) @JoinColumn(name="iccode") @JsonIgnore private Ic ic; @OneToMany(mappedBy="sbg1", fetch=FetchType.EAGER) private List<Utilization> utilization; public int getSbgCode() { return sbgCode; } public void setSbgCode(int sbgCode) { this.sbgCode = sbgCode; } public String getSbgdesc() { return sbgdesc; } public void setSbgdesc(String sbgdesc) { this.sbgdesc = sbgdesc; } public Ic getIc() { return ic; } public void setIc(Ic ic) { this.ic = ic; } }
利用率類
package be.g00glen00b.model; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Utilization { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int asset_type_key; private String asset_type; private String Engine_status; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "sbgCode") private sbg sbg1; public sbg getSbg1() { return sbg1; } public void setSbg1(sbg sbg1) { this.sbg1 = sbg1; } public int getAsset_type_key() { return asset_type_key; } public void setAsset_type_key(int asset_type_key) { this.asset_type_key = asset_type_key; } public String getAsset_type() { return asset_type; } public void setAsset_type(String asset_type) { this.asset_type = asset_type; } public String getEngine_status() { return Engine_status; } public void setEngine_status(String engine_status) { Engine_status = engine_status; } }
JPA庫
01之間的映射
請檢查答案。 – ozgur