Я новичок в Hibernate
и пытался реализовать один из HQL
запросов
Query q= em.createQuery("select p from Person p join p.company c");
List<Person> l = q.getResultList();
System.out.println(l.get(0));
Когда я запускаю приведенный выше код, я получаю следующую ошибку:
Exception in thread "main" java.lang.StackOverflowError
at java.lang.StringBuilder.append(Unknown Source)
at java.lang.StringBuilder.<init>(Unknown Source)
at hibernate5.testing.onetomany.Person.toString(Person.java:71)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at java.util.AbstractCollection.toString(Unknown Source)
at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:527)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at hibernate5.testing.onetomany.Company.toString(Company.java:72)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
Однако, когда я закомментирую sysout
, он работает так, как ожидалось. Что касается трассировки стека, он, похоже, касается метода toString
, но я не уверен, в чем здесь проблема. Ниже приведены POJOs
или entities
Человек
getters and setters
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", company=" + company + "]";
}
Компания
getters and setters
@Override
public String toString() {
return "Company [id=" + id + ", name=" + name + ", persons=" + persons + "]";
}
Может кто-нибудь, пожалуйста, помогите.