JPA...não consigo fazer manytoone .....?

0 respostas
P

Estou apenas querendo gravar Pai e filho
mas não da certo já fiz varias anotações e agora só tem
anotações javax.persistence mas não vai …

na hora que faz persist do objeto Universidade da erro …

será que isso funciona…ja estou jogando agua pois não vai o que será que está errado…

estou usando java 1.5
top link oracle
banco de dados mysql 5
driver mysql

por favor me ajudem …

abs

[TopLink Info]: 2008.11.28 03:01:47.408--ServerSession(15290002)--TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060908)
[TopLink Info]: 2008.11.28 03:01:48.255--ServerSession(15290002)--file:/C:/workspace/TesteJPA/build/classes-exemploJPA login successful
[TopLink Warning]: 2008.11.28 03:01:48.447--UnitOfWork(26596606)--java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST.
Erro...java.lang.IllegalStateException: 
Exception Description: No transaction is currently active
Final...


----

public class TesteUniversidade {

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

			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);
		
        }catch(Exception e){
            System.out.println("Erro..."+e);
        }finally{
        	System.out.println("Final...");
        }
	}

}
---
  <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>
--


public 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;

	}

}
Criado 28 de novembro de 2008
Respostas 0
Participantes 1