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