Galera, iniciei com hibernate e consegui fazer ele funcionar, mas aconteceu isso, eu tenho 4 campos na tabela (id,cpf,matricula,nome), ele só está inserindo 3 (cpf, matricula, nome), acredito que deve ser alguma coisa de configuração, estou usando Mysql.
Hibernate: insert into hibernate.aluno (cpf, matricula, nome) values (?, ?, ?)
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.exception.GenericJDBCException: could not insert: [hiber.Aluno]
Se alguém ajudar eu agradeço
valeu
Posta alguma parte do codigo.
Essa é minha classe Main ondeestou executando os métodos
[code]Configuration cfg = new AnnotationConfiguration();
cfg.configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Aluno aluno = new Aluno();
aluno.setId(1);
aluno.setCpf(1234343);
aluno.setNome("berdam");
aluno.setMatricula(123);
session.save(aluno);
tx.commit();
session.close();[/code]
Essa é minha classe Aluno
[code]@Entity
@Table(name="aluno",schema="hibernate")
public class Aluno {
//O campo id tem o mesmo nome na tabela do mysql
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
private int matricula;
private String nome;
private int cpf;[/code]
Esse é 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>
<!-- properties -->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/hibernate
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="show_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="connection.pool_size">10</property>
<!-- mapping classes -->
<mapping
class="hiber.Aluno" />
</session-factory>
</hibernate-configuration>
Onde voce está indicando onde que está o arquivo de configuração do hibernate?
public class HibernateUtil {
public static Logger logger = Logger.getLogger(HibernateUtil.class);
public static SessionFactory factory;
static {
factory = new AnnotationConfiguration(). configure("org/hibernate/cfg/hibernate.cfg.xml").buildSessionFactory();
}
public static Session getSession(){
return factory.openSession();
}
}
Eu coloquei meu hibernate.cfg.xml dentro da pasta src, e apenas com o cfg.configure(), parece que carregou, pois somente acontece erro quando
executo session.save().
Eu estou usando annotations.
Pelo que poer
Configuration cfg = new AnnotationConfiguration();
cfg.configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Aluno aluno = new Aluno();
aluno.setId(1);
aluno.setCpf(1234343);
aluno.setNome(“berdam”);
aluno.setMatricula(123);
session.save(aluno);
tx.commit();
session.close();
Tenta passar a String do caminho do arquivo de configuração do Hibernate.
Coloque mais detalhe da exceção… facilita, pois fica difícil testar seu código.
:joia:
Olá pessoal obrigado pelas respostas.
Tirei uma foto da tela para ficar mais fácil.
Neste link, eu coloquei a string do hibernate.cfg.xml na método configure.
e deu erro no prompt, vejam.
http://www.unoescxxe.edu.br/~berdam/java/java.PNG
Neste outro link eu tirei a string do arquivo hibernate.cfg.xml do método configure, parece que ele carrega o arquivo e vai realizar a inserção, mas falta justamente o campo id da tabela.
http://www.unoescxxe.edu.br/~berdam/java/java2.PNG
Galera, cometi uma gafe aqui, setei o campo ip como primary key, mas não como auto incremento no mysql.
Arrumei a parada lá e resolveu a situacão.
valeu pela ajuda e desculpe esse rolo todo.