hi appfusers,
i have declared the next entity
[code]
@Entity
@Table(name="VA01")
@NamedQueries ({
@NamedQuery(
name = "findMetadataHeader",
query = "select distinct 0 as id, ordencolumna, nombrecolumna, 0 as
mvalorcolumna, 0 as orden, 0 as idi18, 0 as idperiodo, 0 as idestructura ,
tipo from ViewDataGrid order by ordencolumna"
),
@NamedQuery(
name = "findViewDataGridAllKpis",
query = "select v.id, v.ordencolumna, v.nombrecolumna,
v.mvalorcolumna, v.orden, v.idi18, v.idperiodo, v.idestructura, v.tipo from
ViewDataGrid v where (v.idperiodo is null or v.idperiodo = :idperiodo) and
(v.idestructura is null or v.idestructura = :idestructura) and (v.idi18 =
:idi18) order by v.orden, v.ordencolumna, v.idperiodo, decode(v.tipo, 'I',
1, 0)"
)
})
public class ViewDataGrid {
private Long id;
private Long ordencolumna;
private String nombrecolumna;
private String mvalorcolumna;
private String orden;
private Long idi18;
private Long idperiodo;
private Long idestructura;
private String tipo;
.... get and setters...
[/code]
if i declared the next method, the execution returns a Object list and not a
ViewDataGrid List, also, a casting throws a classcast Exception in the test
execution
[code]
public List<ViewDataGrid> getMetadataHeader() {
return getHibernateTemplate().findByNamedQuery("findMetadataHeader");
}
[/code]
but on the other hand, if i declared the next method, the execution returns
a ViewDataGrid List
[code]
public List<ViewDataGrid> getMetadataHeader() {
Table table = AnnotationUtils.findAnnotation(ViewDataGrid.class,
Table.class);
NamedQueries namedQueries =
AnnotationUtils.findAnnotation(ViewDataGrid.class, NamedQueries.class);
NamedQuery [] aNamedQuery = namedQueries.value();
String sQuery = aNamedQuery[0].query();
sQuery = sQuery.replaceAll("ViewDataGrid", table.name());
Query query =
getSession().createSQLQuery(sQuery).addEntity(ViewDataGrid.class);
return query.list();
}
[/code]
What is the problem in the first method ?
thanks