Hi guys, I'd like to understand how it is possible: Until I was working with one table everything worked fine, when I have mapped another table it fails as shown below:
Glassfish start
INFO: configuring from resource: /hibernate.cfg.xml INFO: Configuration resource: /hibernate.cfg.xml INFO: Reading mappings from resource : hibernate_centrale.hbm.xml //first table INFO: Mapping class: com.italtel.patchfinder.objects.centrale -> centrale INFO: Reading mappings from resource : hibernate_impianti.hbm.xml //second table INFO: Mapping class: com.italtel.patchfinder.objects.Impianto -> impianti INFO: Configured SessionFactory: null
INFO: schema update complete INFO: Hibernate: select centrale0_.id as id0_, centrale0_.name as name0_, centrale0_.impianto as impianto0_, centrale0_.servizio as servizio0_ from centrale centrale0_ group by centrale0_.name INFO: Hibernate: select centrale0_.id as id0_, centrale0_.name as name0_, centrale0_.impianto as impianto0_, centrale0_.servizio as servizio0_ from centrale centrale0_ where centrale0_.name='ANCONA' order by centrale0_.name asc
//Error org.hibernate.hql.ast.QuerySyntaxException: impianti is not mapped [from impianti where impianto='SD' order by modulo asc] at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181) .....
config
table1
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
<class name="com.italtel.patchfinder.objects.Impianto" table="impianti">
<id column="id" name="id">
<generator class="increment"/>
</id>
<property name="impianto"/>
<property name="modulo"/>
</class> </hibernate-mapping>
table2
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.italtel.patchfinder.objects.centrale" table="centrale">
<id column="id" name="id">
<generator class="increment"/>
</id>
<property name="name"/>
<property name="impianto"/>
<property name="servizio"/>
</class>
</hibernate-mapping>
connection stuff ...
<property name="hbm2ddl.auto">update</property>
<mapping resource="hibernate_centrale.hbm.xml"/>
<mapping resource="hibernate_impianti.hbm.xml"/>
</session-factory>
</hibernate-configuration>
`
public List<centrale> loadAll() {
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
return session.createQuery("from centrale group by name").list();
}
public List<centrale> loadImplants(String centrale) {
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
return session.createQuery("from centrale where name='" + centrale + "' order by name asc").list();
}
public List<Impianto> loadModules(String implant) {
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
return session.createQuery("from impianti where impianto='" + implant + "' order by modulo asc").list();
}
}
Do you have some advice? Thanks in advance Sorry for the previous format..