用ie8時,請求json,eclipse直接死機!!!!
調試時,可以用chrome,看到無限循環的報錯。。。類似
{"empty":true,"total":4,"firstResult":0,"pageSize":10,"rows":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
User 與 Role 是hibernate的多對多的關系!!!!
jackson中的@JsonBackReference和@JsonManagedReference,以及@JsonIgnore均是為了解決對象中存在雙向引用導致的無限遞歸(infinite recursion)問題。這些標注均可用在屬性或對應的get、set方法中。
@JsonBackReference和@JsonManagedReference:這兩個標注通常配對使用,通常用在父子關系中。@JsonBackReference標注的屬性在序列化(serialization,即將對象轉換為json數據)時,會被忽略(即結果中的json數據不包含該屬性的內容)。@JsonManagedReference標注的屬性則會被序列化。在序列化時,@JsonBackReference的作用相當於@JsonIgnore,此時可以沒有@JsonManagedReference。但在反序列化(deserialization,即json數據轉換為對象)時,如果沒有@JsonManagedReference,則不會自動注入@JsonBackReference標注的屬性(被忽略的父或子);如果有@JsonManagedReference,則會自動注入自動注入@JsonBackReference標注的屬性。
@JsonIgnore:直接忽略某個屬性,以斷開無限遞歸,序列化或反序列化均忽略。當然如果標注在get、set方法中,則可以分開控制,序列化對應的是get方法,反序列化對應的是set方法。在父子關系中,當反序列化時,@JsonIgnore不會自動注入被忽略的屬性值(父或子),這是它跟@JsonBackReference和@JsonManagedReference最大的區別。
