Hibernate HQL pour rejoindre les non-cartographiée tables

J'ai une entité appelée "Kurs":

@Entity
public class Kurs {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long kursId;
    private String name;
    //Accessors....
}

Et aussi une entité appelée "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....
}

Maintenant, je suis en train de construire un KursDao qui ont une méthode pour récupérer une liste de Kurs par le kategoriId, mais je ne suis pas en mesure d'obtenir le rejoindre pour travailler pour moi.
Utilisé pour SQL, normalement j'pense que la requête devrait ressembler à ceci:

getHibernateTemplate().find("from Kurs as k INNER JOIN KursKategori kk ON k.kursId = kk.kursId AND kk.kategoriId = ?", kategoriId);

Mais cela ne fonctionne pas et je ne peux pas trouver quelque chose comme cela fonctionne. Je ne veux pas créer une classe de la KursKategori puisque c'est seulement une table de mappage de toute façon.
Est-il un moyen de rejoindre la non-cartographiée table KursKategori à la table mappée kurs de sorte que je vais seulement le Kurs qui est dans la bonne Kategori?

  • Quelle est l'erreur que vous obtenez? Comment est votre base de données déployée?
  • jeton inattendu: SUR près de la ligne 1, colonne 67 [de pas de.dahlsdata.de modèle.Kurs.Kurs comme k INNER JOIN KursKategori kk SUR k.kursId = kk.kursId ET kk.kategoriId = ?]
  • Il ne marche pas comme SUR mon mot clé. J'ai aussi essayé différentes variantes. E. g. l'utilisation de l'ancienne rejoindre (à partir de kurs k, kurskategori kk où kk.kursId=k.kursId et kk.kategoriId = ?) mais cela donne juste une erreur qui kurskategori n'est pas tracé. Mais je ne veux pas de carte kurskategori. Je veux juste rejoindre mon kurs contre elle.
InformationsquelleAutor user829237 | 2012-01-30