Segue a classe com o metodo main()
[code]package br.com.testes;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import br.com.bean.Departamento;
import br.com.bean.Estado;
import br.com.bean.Funcionario;
import br.com.bean.Usuario;
public class Testes {
/**
* @param args
* @throws ParseException
* @throws IOException
*/
public static void main(String[] args) throws ParseException, IOException {
EntityManagerFactory fac = Persistence.createEntityManagerFactory("MeuBanco");
EntityManager manager = fac.createEntityManager();
manager.getTransaction().begin();
/*Funcionario f1 = new Funcionario();
f1.setNome("Daniel");
Funcionario f2 = new Funcionario();
f2.setNome("Rafael");
Funcionario f3 = new Funcionario();
f3.setNome("Natanael");
Departamento dep = new Departamento();
dep.getFuncionarios().add(f1);
dep.getFuncionarios().add(f2);
dep.getFuncionarios().add(f3);
dep.setSetor("Cozinha");
manager.persist(dep);*/
Usuario user = new Usuario();
user.setEmail("fulano@mail.com");
Estado est = new Estado();
est.setNome("euricon");
[b]manager.persist(user);[/b]
manager.getTransaction().commit();
manager.close();
fac.close();
}
}[/code]
persistence.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="MeuBanco" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.bean.Usuario</class>
<class>br.com.bean.Estado</class>
br.com.bean.Departamento
br.com.bean.Funcionario
false
[/code]
quando eu persisto o usuario la em cima… eu persisto todas as outras classes… mas pq?
Eu utilizei um cascade sim… mas foi em outra tabela que nao tem nada a ver…
no caso essa:
[code]package br.com.bean;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;
@Entity
public class Departamento {
@Id @GeneratedValue
private Long id;
private String setor;
[b]@OneToMany(cascade=CascadeType.PERSIST)[/b]
@JoinTable(name="Departamento_Funcionario",
joinColumns=@JoinColumn(name="dep_id"),
inverseJoinColumns=@JoinColumn(name="func_id"))
private Collection<Funcionario> funcionarios;
public Departamento() {
this.funcionarios = new ArrayList<Funcionario>();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSetor() {
return setor;
}
public void setSetor(String setor) {
this.setor = setor;
}
public Collection<Funcionario> getFuncionarios() {
return funcionarios;
}
public void setFuncionarios(Collection<Funcionario> funcionarios) {
this.funcionarios = funcionarios;
}
}
[/code]
Mas nao consegui entender o que uma tem a ver com a outra?
Outra duvida:
[code]public class Testes {
/**
* @param args
* @throws ParseException
* @throws IOException
*/
public static void main(String[] args) throws ParseException, IOException {
EntityManagerFactory fac = Persistence.createEntityManagerFactory("MeuBanco");
EntityManager manager = fac.createEntityManager();
manager.getTransaction().begin();
Contato c1 = manager.find(Contato.class, 1);
c1.setNome("Nome Novo");
manager.getTransaction().commit();
manager.close();
fac.close();
[/code]
no banco nao era pra ficar “nome novo”???