我有一个名为“Kurs”的实体:
@Entity
public class Kurs {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long kursId;
private String name;
//Accessors....
}
还有一个名为“Kategori”的实体:
@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
它将有一个方法来获取列表Kurs
by the kategoriId
,但我无法让连接为我工作。
由于习惯了 SQL,我通常认为查询应该是这样的:
getHibernateTemplate().find("from Kurs as k INNER JOIN KursKategori kk ON k.kursId = kk.kursId AND kk.kategoriId = ?", kategoriId);
但这是行不通的,我无法让这样的事情发挥作用。我不想创建一个类KursKategori
因为无论如何它只是一个映射表。
有没有办法加入非映射表KursKategori
到映射表kurs
这样我只会得到Kurs
这是在正确的Kategori
?
在 HQL 中,您只能加入实体之间的映射关系。然而,你有这样的关系,这样你就可以使用它:
select kurs from Kategori kat join kat.kursList kurs where kat.kategoriId = ?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)