2010-09-10 21 views
1

j'ai objets Hibernate défini commeMise en veille prolongée: Comment puis-je écrire le HQL pour obtenir les enregistrements d'une entité sans dossiers pour son identification relation

Class SomeText{ 
    private Long textId; 
    private Set<Tag> Tags = new HashSet<Tag>(); 

    @ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE }) 
    @JoinTable(name = "text_tag_reln", 
    joinColumns = { @JoinColumn(name = "textId") }, 
    inverseJoinColumns = { @JoinColumn(name = "tagId") }) 
    public Set<Tag> getTags() { 
     return Tags; 
    } 
} 

Class Tag{ 
    private long tagId; 
} 

Je veux maintenant obtenir tous ces objets someText qui n'ont pas Mots clés. J'ai écrit le HQL suivant, mais cela ne fonctionne pas.

select st from SomeText as st where st.Tags = null 

Que dois-je faire pour obtenir ces enregistrements. Dans le monde SQL, j'aurais écrit une requête qui obtiendrait tous les textIds distincts de la table text_tag_reln et obtiendrait tous les identifiants SomeText qui n'étaient pas présents dans cet ensemble. Comment puis-je faire cela en HQL?

+0

vous définissez des balises à nouveau HashSet () lorsque vous créez l'objet, comment pourrait-il jamais être nul? –

Répondre