Olá gente, to com um problema meio besta aqui mais não to conseguindo resolver…
Meu sistema já tem uma base de dados, mas o NetBeans não gerou o FK de uma tabela…eu tenho a seguinte relação…
<hibernate-mapping>
<class name="entidade.OnibusParada" table="onibus_parada">
<id name="idOnibusParada" type="java.lang.Integer">
<column name="id_onibus_parada" />
<generator class="assigned" />
</id>
<property name="numero" type="string">
<column name="numero" length="2000000000" />
</property>
<property name="idParada" type="java.lang.Integer">
<column name="id_parada" />
</property>
</class>
</hibernate-mapping>
Eu tenho as tabelas( com hnm.xml e uma classe) onibus e parada…
Eu tentei fazer o seguinte inner join e deu erro…
String hql = "select pa from Parada pa join OnibusParada p on pa.id = p.idParada where p.numero = :numero";
A mensagem de erro está assim…
Fev 24, 2013 5:52:08 PM javax.faces.event.MethodExpressionActionListener processAction
SEVERE: 'org.hibernate.hql.ast.QuerySyntaxException' recebido ao invocar escuta de ação '#{onibusBean.listaParada}' para o componente 'j_idt25'
Fev 24, 2013 5:52:08 PM javax.faces.event.MethodExpressionActionListener processAction
SEVERE: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 55 [select pa from entidade.Parada pa join OnibusParada p on pa.id = p.idParada where p.numero = :numero]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
O método e esse…
@Override
public List<Parada> listarOnibusParada(String numero) {
String hql = "select pa from Parada pa join OnibusParada p on pa.id = p.idParada where p.numero = :numero";
Query query = this.session.createQuery(hql);
query.setString("numero", numero);
List<Parada> lista = query.list();
return lista;
}
Porque o select não mim retornou um ArrayList de Parada ?