簡體   English   中英

找不到JPA內部聯接路徑和找不到屬性

[英]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”的屬性:

  • 忘記“ on”關鍵字-這是SQL,由點分表達式和映射表示
  • “無法解析屬性:CubeConfigEntity”似乎是合理的,因為那是實體名稱,而不是屬性

因此,只需嘗試以下操作:

"SELECT cv from CubeValuesEntity cv inner join cv.cubeConfig cc where..."

br,詹斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM