Problemas con las joined-subclass en Hibernate
Hola!!!
Tengo una aplicaci贸n con una clase padre Publicacion, de la que heredan otras como por ejemplo Libro.
He hecho el mapeo a Hibernate en Publicacion.hbm.xml as铆:
<class name="Publicacion" table="PUBLICACION">
<id name="id" type="int">
<column name="id" sql-type="int(11)"/>
<generator class="increment"/>
</id>
<property name="titulo" type="string">
<column name="titulo" not-null="true"/>
</property>
<property name="resumen" type="string">
<column name="resumen"/>
</property>
<joined-subclass name="Libro" table="LIBRO">
<key column="idLibro" not-null="true"/>
<property name="ISBN" type="string">
<column name="ISBN" not-null="true"/>
</property>
<property name="idEditorial" type="int">
<column name="idEdit"/>
</property>
<property name="ciudad" type="string">
<column name="ciudad" not-null="true"/>
</property>
<property name="idPais" type="int">
<column name="idPais"/>
</property>
<property name="numPag" type="int">
<column name="numpag"/>
</property>
<property name="anyoPub" type="int">
<column name="anyo"/>
</property>
</joined-subclass>
Me guarda correctamente los objetos tanto en la tabla Publicacion como en la tabla Libro, el problema es que para hacer un select de todos los libros, no consigo que funcione:
List results=session.createSQLQuery("select P.titulo from LIBRO L inner join PUBLICACION P on P.id=L.idLibro").list();
Iterator it=results.iterator();
while(it.hasNext()){
Publicacion p=(Publicacion)it.next();
System.out.println(p.getTitulo());
System.out.println(p.getResumen());
}
Al ejecutarlo me arroja la excepci贸n:
java.lang.ClassCastException, tanto si le hago un casting con Publicacion como si se lo hago con Libro.
El caso es que he comprobado que el n煤mero de resultados que obtengo en la consulta coincide con el n煤mero de filas de la tabla Libros en mi base de datos, pero el problema es q no puedo acceder a los objetos para obtener sus datos.
Si alguien me puede ayudar,se lo agradezco de antemano!!!
Tengo una aplicaci贸n con una clase padre Publicacion, de la que heredan otras como por ejemplo Libro.
He hecho el mapeo a Hibernate en Publicacion.hbm.xml as铆:
<class name="Publicacion" table="PUBLICACION">
<id name="id" type="int">
<column name="id" sql-type="int(11)"/>
<generator class="increment"/>
</id>
<property name="titulo" type="string">
<column name="titulo" not-null="true"/>
</property>
<property name="resumen" type="string">
<column name="resumen"/>
</property>
<joined-subclass name="Libro" table="LIBRO">
<key column="idLibro" not-null="true"/>
<property name="ISBN" type="string">
<column name="ISBN" not-null="true"/>
</property>
<property name="idEditorial" type="int">
<column name="idEdit"/>
</property>
<property name="ciudad" type="string">
<column name="ciudad" not-null="true"/>
</property>
<property name="idPais" type="int">
<column name="idPais"/>
</property>
<property name="numPag" type="int">
<column name="numpag"/>
</property>
<property name="anyoPub" type="int">
<column name="anyo"/>
</property>
</joined-subclass>
Me guarda correctamente los objetos tanto en la tabla Publicacion como en la tabla Libro, el problema es que para hacer un select de todos los libros, no consigo que funcione:
List results=session.createSQLQuery("select P.titulo from LIBRO L inner join PUBLICACION P on P.id=L.idLibro").list();
Iterator it=results.iterator();
while(it.hasNext()){
Publicacion p=(Publicacion)it.next();
System.out.println(p.getTitulo());
System.out.println(p.getResumen());
}
Al ejecutarlo me arroja la excepci贸n:
java.lang.ClassCastException, tanto si le hago un casting con Publicacion como si se lo hago con Libro.
El caso es que he comprobado que el n煤mero de resultados que obtengo en la consulta coincide con el n煤mero de filas de la tabla Libros en mi base de datos, pero el problema es q no puedo acceder a los objetos para obtener sus datos.
Si alguien me puede ayudar,se lo agradezco de antemano!!!
