Segue a classe com o metodo main()
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("[email removido]");
Estado est = new Estado();
est.setNome("euricon");
[b]manager.persist(user);[/b]
manager.getTransaction().commit();
manager.close();
fac.close();
}
}
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<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>
[b] <class>br.com.bean.Departamento</class>
<class>br.com.bean.Funcionario</class>[/b]
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/MeuBanco"/>
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="admin" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
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:
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;
}
}
Mas nao consegui entender o que uma tem a ver com a outra?
___
Outra duvida:
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();
no banco nao era pra ficar "nome novo"?????????