Hibernate ...During synchronization a new object was found through a relationship that was not marke

Olá,

estou com o erro abaixo alguém poderia me ajudar pois na hora de inserir esse objeto

deu esse erro …

Não sei se estou no caminho certo se misturei Hibernate com JPA …

se alguem puder me ajudar ???

abs

---

[TopLink Info]: 2008.11.27 01:16:27.731--ServerSession(15290002)--file:/C:/workspace/TesteJPA/build/classes-exemploJPA login successful
[TopLink Warning]: 2008.11.27 01:16:27.793--ServerSession(15290002)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060908)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'usuario' already existsError Code: 1050
Call:CREATE TABLE Usuario (ID INTEGER AUTO_INCREMENT NOT NULL, LOGIN VARCHAR(255), PASSWORD VARCHAR(255), NOME VARCHAR(255), PRIMARY KEY (ID))
Query:DataModifyQuery()
[TopLink Warning]: 2008.11.27 01:16:27.809--ServerSession(15290002)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060908)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'centro' already existsError Code: 1050
Call:CREATE TABLE CENTRO (id_centro INTEGER AUTO_INCREMENT NOT NULL, NOME VARCHAR(255), id_universidade INTEGER, PRIMARY KEY (id_centro))
Query:DataModifyQuery()
[TopLink Warning]: 2008.11.27 01:16:27.809--ServerSession(15290002)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060908)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'universidade' already existsError Code: 1050
Call:CREATE TABLE Universidade (id_universidade INTEGER AUTO_INCREMENT NOT NULL, NOME VARCHAR(255), PRIMARY KEY (id_universidade))
Query:DataModifyQuery()
[TopLink Warning]: 2008.11.27 01:16:27.997--UnitOfWork(13446707)--java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST.
Exception in thread "main" java.lang.IllegalStateException: 
Exception Description: No transaction is currently active
	at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.rollback(EntityTransactionImpl.java:125)
	at br.com.exemplojpa.persistencia.UniversidadeDAO.inserirUniversidade(UniversidadeDAO.java:47)
	at br.com.exemplojpa.teste.TesteUniversidade.main(TesteUniversidade.java:31)

---
public class TesteUniversidade {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		UniversidadeDAO dao = new UniversidadeDAO();
		
		Universidade univ = new Universidade();
		univ.setNome("Universidade Federal do Rio Grande do Norte");
		Centro centro1 = new Centro();
		centro1.setNome("Centro de Tecnologia");
		centro1.setUniversidade(univ);
		Centro centro2 = new Centro();
		centro2.setNome("Centro de Humanas");
		centro2.setUniversidade(univ);
		univ.setCentros(new HashSet<Centro>());
		univ.getCentros().add(centro1);
		univ.getCentros().add(centro2);
		
		dao.inserirUniversidade(univ);
		
		
		
	}

}
----

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.ForeignKey;


@Entity
@Table
public class Centro {

	
	@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
	@Column(name="id_centro")
	private int id;
	private String nome;
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id_universidade",
	insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.PERSIST)
	
	private Universidade universidade;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Universidade getUniversidade() {
		return universidade;
	}
	public void setUniversidade(Universidade universidade) {
		this.universidade = universidade;
	}
	
	
}
---

import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity @Table(name = "Universidade")
public class Universidade {
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    @Column(name="id_universidade")
	private int id;
	private String nome;
	
	@OneToMany(mappedBy="universidade",fetch=FetchType.LAZY)
	@Cascade(CascadeType.PERSIST)
	private Collection<Centro> centros;


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getNome() {
		return nome;
	}


	public void setNome(String nome) {
		this.nome = nome;
	}


	public Collection<Centro> getCentros() {
		return centros;
	}


	public void setCentros(Collection<Centro> centros) {
		this.centros = centros;
	}
	
	
	
	
	
}
---
<persistence-unit name="exemploJPA" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
    <class>br.com.exemplojpa.modelo.Usuario</class>
    <class>br.com.exemplojpa.modelo.Centro</class>
    <class>br.com.exemplojpa.modelo.Universidade</class>
    
    
    <properties>
      <property name="toplink.logging.level" value="INFO"/>
      <property name="toplink.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/exemplojpa"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.password" value="root"/>
      <property name="toplink.show_sql" value="true" />
      <property name="toplink.ddl-generation" value="create-tables"/> 
    </properties>
  </persistence-unit>
---
ublic class UniversidadeDAO {

	private EntityManagerFactory factory = null;

	private EntityManager manager = null;

	public UniversidadeDAO() {

		factory = Persistence.createEntityManagerFactory("exemploJPA");
		manager = factory.createEntityManager();

	}

	/**
	 * Inserindo um universidade
	 * 
	 * @param universidade
	 */
	public void inserirUniversidade(Universidade universidade) {

		EntityTransaction transaction = manager.getTransaction();

		try {
			transaction.begin();

			manager.persist(universidade);
			transaction.commit();
            System.out.println("Inclusão OK...");
		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());

		} finally {
			manager.close();
		}

	}

	/**
	 * Pesquisar um universidade
	 * 
	 * @param universidade
	 */
	public Universidade pesquisarUniversidade(Integer id, Universidade universidade) {
		EntityTransaction transaction = manager.getTransaction();

		Universidade retorno = null;

		try {

			
			transaction.begin();

			retorno = (Universidade) manager.find(Universidade.class, id);

		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());
		} finally {
			manager.close();
		}

		return retorno;

	}

}

---
---