以下のクエリは、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クエリを書いています。 org.hibernate.hql.internal.ast.QuerySyntaxException:私は、エラーの下に取得しています
@Query("SELECT i FROM Utilization i,i.sbg s where s.sbgCode = :sbgCode")
public ArrayList<Utilization> findUtilization(@Param("sbgCode") int sbgCode);
、によって引き起こされるこのエラー
を解決する方法を教えてくださいi.sbgは私を選択[マッピングされていませんbe.g00glen00b.model.Utilizationから私は、i.sbgのどこs.sbgCodeは=:sbgCode]
あなたはJPQLクエリに上記のSQLクエリを作成する方法を教えていただけますか? 私はこれに新しいので、JPQL結合を学習するためのリンクを提案してください。クラス以下
2つのテーブル
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