Ola pessoal,
Estou com o seguinte problema: Quando estava usando a versao anterior do hibernate dava tudo certo agora fui a tualizar para a 3.5 aparece alguns erros, então gostaria de saber se alguem ja passou por esse problema e poderia me dizer o que fazer para resolvê-lo.
exception
og4j: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” java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1830)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:762)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:726)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:636)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:359)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1377)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at br.com.caelum.vraptor.exoclinica.testes.AdicaoDeAnimal.main(AdicaoDeAnimal.java:15)
minhas classes:
1º
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name=“cliente”)
public class Cliente {
@Id
@GeneratedValue
@Column(name="cod_cliente")
private Long cliente;
private String nome_cli;
private String endereco_cli;
private String telefone_cli;
private long cep_cli;
private String email_cli;
@OneToMany(mappedBy="cliente")
private List<Animal> animais;
2º
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name=“animal”)
public class Animal {
@Id
@GeneratedValue
@Column(name="cod_animal")
private Long animal;
private String nome_ani;
private int idade_ani;
private int sexo_animal;
@ManyToOne
@JoinColumn(name="cod_cliente")
private Cliente cliente;
Classes de teste
1º
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.caelum.vraptor.exoclinica.modelo.Animal;
public class AdicaoDeAnimal {
public static void main(String[] args){
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
Session session = factory.openSession();
Animal animal = new Animal();
animal.setNome_ani("cachorro");
//animal.setCliente(null);
animal.setIdade_ani(12);
animal.setSexo_animal(1);
Transaction tx = session.beginTransaction();
session.save(animal);
tx.commit();
}
}
2º
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.caelum.vraptor.exoclinica.modelo.Cliente;
public class AdicaoDeCliente {
public static void main(String[] args){
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
Session session = factory.openSession();
Cliente cliente = new Cliente();
cliente.setNome_cli("Constancio");
cliente.setEmail_cli("constanciobgn@yahoo.com.br");
cliente.setCep_cli(64015610);
cliente.setEndereco_cli("Cristo Rei");
cliente.setTelefone_cli("8821-3278");
cliente.setAnimais(null);
Transaction tx = session.beginTransaction();
session.save(cliente);
tx.commit();
}
}
3º
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.caelum.vraptor.exoclinica.modelo.Animal;
import br.com.caelum.vraptor.exoclinica.modelo.Cliente;
public class AdicaoDeClienteEAnimal {
public static void main(String[] args){
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
Session session = factory.openSession();
Cliente cliente = new Cliente();
cliente.setNome_cli("Constancio");
cliente.setEmail_cli("constanciobgn@yahoo.com.br");
cliente.setCep_cli(64015610);
cliente.setEndereco_cli("Cristo Rei");
cliente.setTelefone_cli("8821-3278");
Animal animal = new Animal();
animal.setNome_ani("cachorro");
animal.setIdade_ani(12);
animal.setSexo_animal(1);
animal.setCliente(cliente);
Animal animal1 = new Animal();
animal1.setNome_ani("gato");
animal1.setIdade_ani(190);
animal1.setSexo_animal(2);
animal1.setCliente(cliente);
cliente.setAnimais(new ArrayList<Animal>());
cliente.getAnimais().add(animal);
cliente.getAnimais().add(animal1);
Transaction tx = session.beginTransaction();
session.save(cliente);
tx.commit();
}
}
arquivo hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- Configuração da conexão com o banco MySQL e dialeto -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/exoclinica</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="current_session_context_class">thread</property>
<!-- Configurações de debug -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="generate_statistics">true</property>
<property name="use_sql_comments">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- Mapeando classes -->
<mapping class = "br.com.caelum.vraptor.exoclinica.modelo.Cliente" />
<mapping class = "br.com.caelum.vraptor.exoclinica.modelo.Animal" />
</session-factory>