我有一個名爲實體「航向對接」:Hibernate的HQL加盟非映射表
@Entity
public class Kurs {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long kursId;
private String name;
//Accessors....
}
而且也被稱爲「駕駛員學校」的實體:
@Entity
public class Kategori {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long kategoriId;
private String name;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable (name = "KursKategori", joinColumns = {@JoinColumn(name = "kategoriId")}, inverseJoinColumns = {@JoinColumn(name = "kursId")})
private List<Kurs> kursList;
// Accessors....
}
現在即時通訊建設KursDao,即將有一個方法來獲取kategoriId的Kurs列表。但我無法讓加入爲我工作。 使用到SQL我通常會認爲查詢應該是這樣的:
getHibernateTemplate().find("from Kurs as k INNER JOIN KursKategori kk ON k.kursId = kk.kursId AND kk.kategoriId = ?", kategoriId);
但這並不工作,我不能讓這樣的事情工作。我不想創建一個KursKategori類,因爲它只是一個映射表。 有沒有辦法將非映射表KursKategori連接到映射表kurs,所以我只會得到正確Kategori中的Kurs?
你得到的錯誤是什麼?你的數據庫如何部署? – 2012-01-30 18:30:47
意外標記:在第1行第67列ON [來自no.dahlsdata.model.Kurs.Kurs as k INNER JOIN KursKategori kk ON k.kursId = kk.kursId AND kk.kategoriId =?] – user829237 2012-01-30 18:33:24
它不像我的ON關鍵字。我也嘗試過不同的變化。例如。使用舊式連接(來自kurs k,kurskategori kk,其中kk.kursId = k.kursId和kk.kategoriId =?),但這只是給出kurskategori未映射的錯誤。但我不想映射kurskategori。我只是想加入我的反對。 – user829237 2012-01-30 18:35:21