Estou criando um sisteminha como projeto na faculdade e resolvi usar o Hibernate para me ajudar na persistência, porém estou tendo alguns problemas. Gostaria que alguém me ajudasse a resolvê - los:
Um exemplo do código que estou usando:
public class Main {
private static Configuration hibConfig;
private static String mapping = "hibernate.cfg.xml";
public static void main(String args[]) {
hibConfig = new Configuration();
File file = new File( mapping );
if( file.exists() ){
hibConfig.configure( file );
}
else{
java.net.URL url = Main.class.getClassLoader().getResource( mapping );
System.out.println("URL: " + url);
if( url != null)
hibConfig.configure( "model\\" + file );
else {
throw new RuntimeException("Couldn't find mapping file: " + mapping);
}
}
Session s = HibernateUtil.getSessionFactory().openSession();
Query q = s.createQuery("from Parentesco");
List l = q.list();
System.out.println(l.size());
Parentesco p = new Parentesco((short)1, "mapping");
DaoParentesco.insert(p);
}
}
Meu hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
<property name="hibernate.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="hibernate.connection.url">jdbc:firebirdsql://localhost:3050/C:/BDPAP.FDB</property>
<property name="hibernate.connection.username">sysdba</property>
<property name="hibernate.connection.password">masterkey</property>
<mapping class="model.Usuario" resource="model/Usuario.hbm.xml"/>
<mapping class="modelResponsavelaluno" resource="model/Responsavelaluno.hbm.xml"/>
<mapping class="model.Aluno" resource="model/Aluno.hbm.xml"/>
<mapping class="model.Responsavel" resource="model/Responsavel.hbm.xml"/>
<mapping class="model.Turma" resource="model/Turma.hbm.xml"/>
<mapping class="model.ProfAcesso" resource="model/ProfAcesso.hbm.xml"/>
<mapping class="model.Mensagem" resource="model/Mensagem.hbm.xml"/>
<mapping class="model.Professor" resource="model/Professor.hbm.xml"/>
<mapping class="Usuario" file="" jar="" package="model" resource="model/Usuario.hbm.xml"/>
<mapping class="Parentesco" file="" jar="" package="model" resource="model/Parentesco.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Eu estou tentando inserir um Parentesco novo, simples porque não preciso de nenhum relacionamento para inseri - lo.
Segue minha classe de persistência Parentesco:
package model;
// Generated 10/06/2011 22:47:41 by Hibernate Tools 3.2.1.GA
import java.util.HashSet;
import java.util.Set;
/**
* Parentesco generated by hbm2java
*/
public class Parentesco implements java.io.Serializable {
private short tipo;
private String descricacao;
private Set responsavels = new HashSet(0);
public Parentesco() {
}
public Parentesco(short tipo, String descricacao) {
this.tipo = tipo;
this.descricacao = descricacao;
}
public Parentesco(short tipo, String descricacao, Set responsavels) {
this.tipo = tipo;
this.descricacao = descricacao;
this.responsavels = responsavels;
}
public short getTipo() {
return this.tipo;
}
public void setTipo(short tipo) {
this.tipo = tipo;
}
public String getDescricacao() {
return this.descricacao;
}
public void setDescricacao(String descricacao) {
this.descricacao = descricacao;
}
public Set getResponsavels() {
return this.responsavels;
}
public void setResponsavels(Set responsavels) {
this.responsavels = responsavels;
}
}
Por fim meu arquivo de mapeamento de Parentesco:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 10/06/2011 22:47:42 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="model.Parentesco" table="PARENTESCO">
<id name="tipo" type="short">
<column name="TIPO"/>
<generator class="native">
<param name="sequence">GEN_PARENTESCO</param>
</generator>
</id>
<property name="descricacao" type="string">
<column length="20" name="DESCRICACAO" not-null="true"/>
</property>
<set inverse="true" name="responsavels">
<key>
<column name="PARENTESCO" not-null="true"/>
</key>
<one-to-many class="model.Responsavel"/>
</set>
</class>
</hibernate-mapping>
Acontece que quando executo o método main que passei ali em cima ele me retorna o seguinte erro:
[color=red]INFO: Not binding factory to JNDI, no JNDI name configured
17/06/2011 10:30:15 org.hibernate.hql.QuerySplitter concreteQueries
AVISO: no persistent classes found for query class: from model.Parentesco
0
Exception in thread "main" org.hibernate.MappingException: Unknown entity: model.Parentesco
[/color]Alguém sabe o que pode ser ?
Obrigado.
