e ai galera blz
vou postar meus códigos ai se alguém puder me ajudar agradeço desde já
o que acontece e o seguinte eu crio minhas tabelas com um create e mudo para update ou validate e uso um saveOrUpdate mesmo assim ele cria dados novos.
//bean
@Entity
@Table(name = "CATEGORIA")
public class Categoria implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_categoria", nullable = false, length = 20)
private Integer id_categoria;
@Column(name = "descricao", nullable = false, length = 40)
private String descricao;
@OneToMany
private Collection<Subcategoria> subcategoria;
public Integer getId_categoria() {
return id_categoria;
}
public void setId_categoria(Integer id_categoria) {
this.id_categoria = id_categoria;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
[code]
//AbstractDAO
@SuppressWarnings(“serial”)
public abstract class AbstractDAO extends HibernateUtil implements Serializable {
public void salvarOuAtualizar(Object obj) {
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtil.getSession();
transaction = session.beginTransaction();
session.saveOrUpdate(obj);
session.flush();
transaction.commit();
session.close();
} catch (HibernateException e) {
e.printStackTrace();
transaction.rollback();
throw new HibernateException("Falha ao salvar o "
+ "objeto : "
+ obj.toString()
+ "(" + e.getMessage() + ")",
e.getCause());
}
}
public void excluir(Object obj) {
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtil.getSession();
transaction = session.beginTransaction();
session.delete(obj);
session.flush();
transaction.commit();
} catch (HibernateException e) {
transaction.rollback();
throw new HibernateException("Falha"
+ " ao excluir o objeto : "
+ obj.toString() + "("
+ e.getMessage() + ")",
e.getCause());
}
}
public ArrayList<Object> buscarTodos(Class classe) {
Criteria criteria = null;
ArrayList<Object> dados = null;
try {
criteria = getSession().createCriteria(classe);
dados = (ArrayList<Object>) criteria.list();
} catch (Exception e) {
throw new HibernateException("Method: CONSULTA_TODOS, erro: " + e.getLocalizedMessage());
} finally {
}
return dados;
}
}[/code]
[code]
//Hibernate
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static Session session = null;
private static SessionFactory buildSessionFactory() {
return new AnnotationConfiguration().configure().buildSessionFactory();
}
public static Session getSession() {
if (session == null || !session.isOpen()) {
session = sessionFactory.openSession();
}
return session;
}
}[/code]
//hibernate.cfg
?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.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- localhost || ip do servidor -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/despesas</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">***********</property>
<property name="hbm2ddl.auto">validate</property>
<!--<property name="hbm2ddl.auto">update</property>-->
<!--<property name="hbm2ddl.auto">validate</property>-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Mapear todos as classes persistentes ou seja os beans-->
<mapping class="br.com.despesas.bean.Categoria"/>
<mapping class="br.com.despesas.bean.Subcategoria"/>
<mapping class="br.com.despesas.bean.Despesa"/>
</session-factory>
</hibernate-configuration>