Buonasera, spero di aver inserito la discussione nel posto giusto. Dato che la mia domanda è su hql.
Ho da poco iniziato a studiare hibernate e ora mi sono scontrata con l'hql che mi sta dando parecchi problemi. Ora sto tentando si eseguire una select e delle join.
Le tabelle coinvolte nella query sono 3. La tabella libro, autore e libro_autore.
autore[id_autore,nome,cognome]
libro[id_libro,titolo,isbn]
libro_autore[id_autore,id_libro]
mapping del libro
codice:
<hibernate-mapping schema="libreria" package="stefania.dto">
	<class name="Libro" table="libro" lazy="false">
		<id name="id" column="id_libro">
			<generator class="native"/>
		</id>
		<property name="titolo"/>
		<property name="isbn"/>	 
		<set name="autore" table="autore_libro" lazy="false">
			<key column="id_libro" />
			<many-to-many column="id_autore" class="Autore" />
		</set>
		<set name="genere" table="genere_libro" lazy="false">
			<key column="id_libro" />
			<many-to-many column="id_genere" class="Genere" />
		</set>
		<set name="posizione" table="posizione_libro" lazy="false">
			<key column="id_libro" />
			<many-to-many column="id_posizione" class="Posizione" />
		</set>
	</class>
</hibernate-mapping>
mapping dell'autore
codice:
<hibernate-mapping schema="libreria" package="stefania.dto">
	<class name="Autore" table="autore" lazy="false">
		<id name="id" column="id_autore">
			<generator class="native"/>
		</id>
		<property name="nome"/>
		<property name="cognome"/>
	</class>
</hibernate-mapping>
poi ci sono i bean di cui posto soltanto i membri
bean libro
codice:
private int m_id;
	private String m_titolo;
	private String m_isbn;
	private Set m_autore = new HashSet();
	private Set m_genere = new HashSet();
	private Set m_posizione = new HashSet();
bean autore
codice:
private int m_id;
	private String m_nome;
	private String m_cognome;
	private Set m_libro = new HashSet();
ora devo eseguire una query che dato il nome dell'autore mi venga restituita una lsta di libri che abbiano quell'autore.Quindi devo fare una join, ma mentre con lsql riuscirei a farlo con l'hql è un problema, perchè la quey dovebbe restituirmi 3 libri invece me ne restituisce 9.
query eseguita
codice:
 m_session= getSessionFactory().openSession();

		Query query = m_session.createQuery("from Libro l, Autore a where a.nome = :nome");
		query.setString("nome", p_nomeAutore);
		List<Libro> listaLibri = query.list();
		getSessionFactory().close();
		return listaLibri;
Non riesco a capire cosa fare.
Grazie ciao Stefania