I don't see anything obviously wrong. Can you post the full stack trace?
Craig On Oct 5, 2007, at 7:32 AM, CASERO Jaime wrote:
I think your problem is due the recursive nature of the data structure you are trying to model. Correct if I'm wrong, but "Tabela" is the classical "Tree". I have already used this kind of structures with openjpa, and the depth of the tree, is limited by the Java stack. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Friday, October 05, 2007 3:45 PM To: users Subject: Re:Exception in thread "main" java.lang.StackOverflowError Sorry, Here the source code. Please help me. Teste.java====================================================================== ====== import java.util.Iterator; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class Teste { /** * @param args */ public static void main(String[] args) { EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("default", System .getProperties()); EntityManager em = (EntityManager) emf.createEntityManager(); EntityTransaction transaction = em.getTransaction(); transaction.begin(); for (int x = 0; x < 1000; x++) { em.persist(new Tabela(x, "Id " + x)); } transaction.commit(); transaction.begin(); List l = (List<Tabela>) em.createQuery("SELECT a FROM Tabela a") .getResultList(); Iterator i = l.iterator(); while (i.hasNext()) { Tabela tb = (Tabela) i.next(); System.out.println(tb); } transaction.commit(); } }====================================================================== ====== Tabela.java====================================================================== ====== import java.io.Serializable; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import org.apache.openjpa.persistence.InverseLogical; @Entity public class Tabela implements Serializable { private static final long serialVersionUID = -7323896668494281866L; @Id private int id; private String ds; @ManyToOne(cascade = CascadeType.REFRESH) @JoinColumn(name = "pai", nullable = true) private Tabela pai; @OneToMany(cascade = CascadeType.REFRESH, mappedBy = "pai") @InverseLogical("pai") private List<Tabela> filhos; public Tabela(int i, String x) { id = i; ds = x; } public String getDs() { return ds; } public void setDs(String ds) { this.ds = ds; } public int getId() { return id; } public void setId(int a) { this.id = a; } public Tabela() { super(); } public String toString() { return "" + id + " " + ds; } public List<Tabela> getFilhos() { return filhos; } public void setFilhos(List<Tabela> filhos) { this.filhos = filhos; } public Tabela getPai() { return pai; } public void setPai(Tabela pai) { this.pai = pai; } }====================================================================== ====== tnks []s ---------- In?cio da mensagem original ----------- De: [EMAIL PROTECTED] Para: "users" [email protected] Cc: "dev" [EMAIL PROTECTED] Data: Tue, 2 Oct 2007 20:28:44 -0300 Assunto: Exception in thread "main" java.lang.StackOverflowErrororg.apache.openjpa.enhance.Reflection.getDeclaredField (Reflection.java:1Guys, I do a simple teste and I found that error: Exception in thread "main" java.lang.StackOverflowError at java.security.AccessController.doPrivileged(Native Method) at66): : The error occurrs in the last commit "transaction.commit();" at line36.Confidentiality Statement:This message is intended only for the individual or entity to which it is addressed. It may contain privileged, confidential information which is exempt from disclosure under applicable laws. If you are not the intended recipient, please note that you are strictly prohibited from disseminating or distributing this information (other than to the intended recipient) or copying this information. If you have received this communication in error, please notify us immediately by return email.-----------------------------
Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!
smime.p7s
Description: S/MIME cryptographic signature
