Olá pessoal,
não sei se estou fazendo certo mais estou querendo fazer um join entre
duas tabelas no banco e mostrar o resultado.
Mas só define a classe das duas tabelas (Empresas e Consultores)
E utilizo uma tabela associativa na minha query que não defini
nos arquivos hbm …
O que fazer o que estou fzendo de errado …
Se alguem puder me ajudar agradeceria…
abss
public class Testa2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//Session sessao = HibernateUtility.getSession();
SessionFactory sf = new Configuration().configure("br/com/curso/hibernate.cfg.xml").buildSessionFactory();
Session s = sf.openSession();
Transaction tx = s.beginTransaction();
Query select = s.createQuery("select emp.empresa,emp.idempresa,emp.valorhora from Empresas as emp,ConsultoresEmpresas as con where emp.idempresa = con.idempresa and emp.empresa like 'eu%'");
select.setFirstResult(0);
select.setMaxResults(5);
List <Empresas>lista = select.list();
//
for(Empresas sa : lista) {
System.out.println("Id: " + sa.getIdEmpresa() );
System.out.println("Empresa: " + sa.getEmpresa() );
System.out.println("Valor Hora: " + sa.getValorhora() );
System.out.println("------------------------------------------" );
}
tx.commit();
s.close();
}
}
erro :
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: ConsultoresEmpresas is not mapped [select emp.empresa,emp.idempresa,emp.valorhora from br.com.wincomp.curso.Empresas as emp,ConsultoresEmpresas as con where emp.idempresa = con.idempresa and emp.empresa like 'eu%']
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
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 br.com.wincomp.curso.Testa2.main(Testa2.java:25)
empresas
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="br.com.wincomp.curso.Empresas" table="empresas">
<id name="idEmpresa" column="idEmpresa" type="int">
<generator class="native"/>
</id>
<property name="empresa"/>
<property name="valorhora"/>
<set name = "consultores" table = "consultoresempresas" inverse="true">
<key column = "idempresa"/>
<many-to-many column = "idconsultor" class = "br.com.wincomp.curso.Consultores"/>
</set>
</class>
</hibernate-mapping>
–consultores
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="br.com.wincomp.curso.Consultores" table="consultores">
<id name="idConsultor" column="idConsultor" type="int">
<generator class="native"/>
</id>
<property name="nome"/>
<property name="nascimento"/>
<set name ="empresas" table="consultoresempresas">
<key column="idConsultor"/>
<many-to-many column="idEmpresa" class="br.com.wincomp.curso.Empresas"/>
</set>
</class>
</hibernate-mapping>