如何避免循环在休眠中持续存在

时间:2016-01-01 18:52:28

标签: java hibernate rest fetch

我有2个实体

Long id;
String pealkiri;
List<Authors> authors;

作者

Long id;
String name;
List<Article> articles;

当我使用fetch = FetchType.LAZY时,它应该是WEB。因为当我问List时,它返回Articles而没有Autors。当我问了一些Article时,它返回Article Authors列表。

现在我需要添加重新启用JSON的REST功能。

我需要一些像

这样的查询
getAricles;

getAuthors;

他们两人都必须返回

getAricles;

[
{"id":367, 
    "pealkiri":"pealkiri1", 
    "autorid":
    [
        {"id":24, 
        "name":"Author24"},
        {"id":25, 
        "name":"Author25"}
    ]
},
{"id":368, 
    "pealkiri":"pealkiri2", 
    "autorid":
    [
        {"id":26, 
        "name":"Author26"},
        {"id":27, 
        "name":"Author27"}
    ]
}
]

getAuthors:

[
    {
        "id":24, 
        "name":"Author24",
        "articles":
        [
            {"id":367, 
            "pealkiri":"pealkiri1"}
        ]
    },
    {
        "id":25, 
        "name":"Author25",
        "articles":
        [
            {"id":367, 
            "pealkiri":"pealkiri1"}
        ]
    }
]

为了避免延迟异常,我尝试在文章的作者fild和作者的文章中使用@Fetch(FetchMode.JOIN),但链接:

文章有作者 - &gt;作者有文章 - &gt;文章有作者 - 作者有文章等。

现在,Hibernate为1篇文章生成了100多个查询。

0 个答案:

没有答案