Restful規則及JPA導致內存溢出


HTTP動詞

對於資源的具體操作類型,由HTTP動詞表示。
常用的HTTP動詞有下面五個(括號里是對應的SQL命令)。

GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變后的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。

還有兩個不常用的HTTP動詞。

HEAD:獲取資源的元數據。
OPTIONS:獲取信息,關於資源的哪些屬性是客戶端可以改變的。

下面是一些例子。

GET /zoos:列出所有動物園
POST /zoos:新建一個動物園
GET /zoos/ID:獲取某個指定動物園的信息
PUT /zoos/ID:更新某個指定動物園的信息(提供該動物園的全部信息)
PATCH /zoos/ID:更新某個指定動物園的信息(提供該動物園的部分信息)
DELETE /zoos/ID:刪除某個動物園
GET /zoos/ID/animals:列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID:刪除某個指定動物園的指定動物

fixed 內存溢出

代碼

@Setter
@Getter
@Entity
@Table(name = "tb_zoo")
public class Zoo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @NotBlank
    private String name;
    private String address;
    private String url;
    @OneToMany(mappedBy = "zoo")
    private List<Animal> animalList;
}
@Setter
@Getter
@Entity
@Table(name = "tb_animal")
public class Animal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    private String name;

    @NotBlank
    private String kind;

    @ManyToOne
    private Zoo zoo;
}

調用GET /zoos/{id}/animals 時, 會出現內存溢出。

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"]->org.hibernate.collection.internal.PersistentBag[0]->com.chinda.entity.Animal["zoo"]->com.chinda.entity.Zoo["animalList"])] with root cause

出現此情況是因為轉換json時會遞歸轉換, 最終導致內存溢出。
解決方案: 忽略掉一方的json轉換即可。
修復后代碼:

@Setter
@Getter
@Entity
@Table(name = "tb_animal")
public class Animal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    private String name;

    @NotBlank
    private String kind;

    @JsonIgnore
    @ManyToOne
    private Zoo zoo;
}

碼雲

https://gitee.com/w_chinda/restful-api


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM