我有一个名为实体“航向对接”: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