HQL語句 Path expected for join!錯誤
阿新 • • 發佈:2019-02-06
HQL語句
select b from SmallNewsClass s left join s. belongBigNewsClass b
起先我以為s. belongBigNewsClass 中的belongBigNewsClass 對應的是資料庫中的屬性名或者是表名
結果出了如下錯誤
其實s. belongBigNewsClass 對應的是實體s的屬性名
對於使用的兩個實體類程式碼如下:
BigNewsClass.java:
SmallNewsClass.java:@Entity public class BigNewsClass { @Id @Column(columnDefinition="varchar(32) COMMENT 'uuid主鍵'") private String uuid; @Column(columnDefinition="int COMMENT 'ID'",unique=true) private int id; @Column(columnDefinition="varchar(50) COMMENT '大類名稱'",unique=true) private String bigNewsClassName;// 大類名稱 <strong><span style="color:#ff0000;">@OneToMany(targetEntity=SmallNewsClass.class,mappedBy="bigNewsClass") private Set<SmallNewsClass> smallNewsClass;</span></strong> // get and set
@Id @Column(columnDefinition="varchar(32) COMMENT 'SmallNewsClass uuid主鍵'") private String uuid; private int id; <span style="color:#ff0000;"><strong>@ManyToOne(targetEntity=BigNewsClass.class) @JoinColumn(name="belongBigNewsClass",referencedColumnName="uuid",nullable=false) private BigNewsClass bigNewsClass;// 所屬大類</strong></span> @Column(columnDefinition="varchar(50) COMMENT '小類名稱'") private String smallNewsClassName;// 小類名稱 @OneToMany(targetEntity=NewsInfo.class,mappedBy="smallNewsClass") private Set<NewsInfo> newsInfo; //get and set
可以看到在SmallNewsClass類中有一個欄位bigNewsClass指定小類所屬的大類。而資料庫中則將它指定為對應大類主鍵uuid的資料項。
所以應該將s. belongBigNewsClass改為s. bigNewsClass就行
你在小類中指定的欄位名是什麼那麼“點號”後面就跟什麼