2012-07-06 52 views
0

我一直在線試圖修復這一段現在。條紋JsonResolution在Hibernate上導致stackoverflowerror多對一映射

我有一個對象,其已經成功地通過使用 但是映射(包括JsonResolution)當我使用多到一個用於一個不同的關係JsonResolution導致計算器錯誤映射,我認爲它被陷在一個循環在那個關係上。我試過懶加載,Hibernate.Initialize e.t.c,但沒有運氣,我認爲需要在JsonResolution結束或映射中糾正一些問題。

<set name="Audits" table="audits" inverse="true" lazy="false" fetch="select"> 
      <key> 
       <column name="entityId" not-null="true" /> 
      </key> 
      <one-to-many class="Audit" /> 
     </set> 

<many-to-one name="person" class="Person" column="personId" not-null="false" unique="true" /> 

代碼:

@HandlesEvent("getall") 
    public Resolution getall() { 
     if(!User.isLoggedInUserAdmin()) { return null; } 
     EventDTO eDTO = new EventDTO(); 
     Session s = DBUtil.GetHibernateSession(); 
     List<Event> events = s.createCriteria(Event.class) 
       .setMaxResults(2) 
       .add(Restrictions.eq("type", "Accident")) 
       .addOrder(Order.desc("id")) 
       .list(); 
     if(events.isEmpty()) { 
      eDTO.setStatus("success"); 
     } else { 
      for(int i=0; i< events.size(); i++) { 
       Hibernate.initialize(events.get(i).getPerson()); 
      } 
      eDTO.setEntities(events); 
      eDTO.setStatus("success"); 
     } 
     JsonResolution j = (JsonResolution) new JsonResolution(eDTO); 
     s.close(); 
     return j; 
    } 

錯誤:

net.sourceforge.stripes.exception.StripesServletException: ActionBean execution threw an exception. 
    net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:183) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) 
root cause 

java.lang.StackOverflowError 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:601) 
    org.json.JSONObject.populateMap(JSONObject.java:937) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONArray.<init>(JSONArray.java:171) 
    org.json.JSONObject.wrap(JSONObject.java:1524) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 
    org.json.JSONObject.<init>(JSONObject.java:272) 
    org.json.JSONObject.wrap(JSONObject.java:1539) 
    org.json.JSONObject.populateMap(JSONObject.java:939) 

回答

1

大概序列不能與圓形參考(比賽 - >人&人 - >事件)對應。 嘗試使用你自己的序列化實現(我不知道你是否可以插入你自己的序列化器)或者使用另一個庫(Gson也許?)進行序列化。