У меня есть объект под названием "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
с помощью 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
, который находится в правильном ] Категория
?