[英]JPA inner join path not found and property not found
我有一個JPA類型查詢聯接問題。 當我使用以下代碼
SELECT cve from CubeValuesEntity cve inner join CubeConfigEntity cce
on cve.cubeConfigId=cce.cubeConfigId
我得到一個QuerySyntaxException:預期加入的路徑! 我認為該錯誤的解決方法如下
SELECT cve from CubeValuesEntity cve inner join cve.CubeConfigEntity cce
on cve.cubeConfigId=cce.cubeConfigId
但是我現在得到QueryException:無法解析屬性:CubeConfigEntity這根本沒有任何意義。
這是我使用的實際Java代碼:
TypedQuery<CubeValuesEntity> query = em.createQuery(
"SELECT cve from CubeValuesEntity cve inner join cve.CubeConfigEntity cce on cve.cubeConfigId=cce.cubeConfigId where " + "cce.cubeType = :cubeType
and cce.name = :name and cve.axisType = :axisType", CubeValuesEntity.class)
.setParameter("cubeType", cubeType).setParameter("name", name).setParameter("axisType", axisType);
return query.getResultList();
這是我的實體
public class CubeValuesEntity extends AbstractDomainObject {
private static final long serialVersionUID = 1L;
private int cubeValueId;
private int cubeConfigId;
private String axisType;
private int axisNumber;
private String axisLabel;
private BigDecimal axisFactor;
public class CubeConfigEntity extends AbstractDomainObject {
private int cubeConfigId;
private String cubeType;
private String name;
private String yAxisName;
private Integer yAxisCubeSize;
private String xAxisName;
private Integer xAxisCubeSize;
private String reductionType;
private BigDecimal midLowRange;
private BigDecimal midHighRange;
謝謝你的幫助。
我相信您在這里混用了JQL和SQL。
假設您在CubeValuesEntity和CubeConfigEntity之間有一個XToOne關系,這是一個名為“ cubeConfig”的屬性:
因此,只需嘗試以下操作:
"SELECT cv from CubeValuesEntity cv inner join cv.cubeConfig cc where..."
br,詹斯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.