Hibernate One to Many渴望不吸引所有数据

Mik*_*ynn 0 hibernate one-to-many eager-loading

我正在对hibernate中的一对多关系做一个急切的负担.父项目被正确拉回,但他们只在子列表中收到一个项目.其中一个父母应该有两个.我运行查询Eclipse spits out,它会得到正确的结果.问题是为什么当一个项目应该有两个时,只有一个项目进入每个列表?

 @OneToMany(mappedBy="badge", fetch=FetchType.EAGER)
     public List<BadgeLevel> getBadgeLevels() {
        return this.badgelevels;
     }
Run Code Online (Sandbox Code Playgroud)

SQL

select
        * 
    from
        ( select
            this_.ID as ID10_2_,
            this_.ACTIVE as ACTIVE10_2_,
            this_.DATECREATED as DATECREA3_10_2_,
            this_.DATEMODIFIED as DATEMODI4_10_2_,
            this_.DESCRIPTION as DESCRIPT5_10_2_,
            this_.ENDDATE as ENDDATE10_2_,
            this_.GLOBAL as GLOBAL10_2_,
            this_.NAME as NAME10_2_,
            this_.PUBLISHDETAILS as PUBLISHD9_10_2_,
            this_.STARTDATE as STARTDATE10_2_,
            (SELECT
                COUNT(*) 
            FROM
                BADGELEVELS bl 
            WHERE
                bl.BADGEID = this_.ID) as formula0_2_,
            badgelevel2_.BADGEID as BADGEID4_,
            badgelevel2_.ID as ID4_,
            badgelevel2_.ID as ID9_0_,
            badgelevel2_.ACTIVE as ACTIVE9_0_,
            badgelevel2_.ASSETID as ASSETID9_0_,
            badgelevel2_.BADGEID as BADGEID9_0_,
            badgelevel2_.DATECREATED as DATECREA3_9_0_,
            badgelevel2_.DATEMODIFIED as DATEMODI4_9_0_,
            badgelevel2_.DESCRIPTION as DESCRIPT5_9_0_,
            badgelevel2_.FILTERS as FILTERS9_0_,
            badgelevel2_."ORDER" as ORDER9_0_,
            asset3_.ID as ID2_1_,
            asset3_.ACTIVE as ACTIVE2_1_,
            asset3_.DATECREATED as DATECREA3_2_1_,
            asset3_.DATEMODIFIED as DATEMODI4_2_1_,
            asset3_.DESCRIPTION as DESCRIPT5_2_1_,
            asset3_.FILENAME as FILENAME2_1_,
            asset3_.FILEPATH as FILEPATH2_1_,
            asset3_.TITLE as TITLE2_1_,
            asset3_.TYPE as TYPE2_1_ 
        from
            TEST.BADGES this_ 
        inner join
            TEST.BADGELEVELS badgelevel2_ 
                on this_.ID=badgelevel2_.BADGEID 
        inner join
            TEST.ASSETS asset3_ 
                on badgelevel2_.ASSETID=asset3_.ID 
        where
            this_.ACTIVE=1 
        ) 
Run Code Online (Sandbox Code Playgroud)

Mik*_*ynn 5

为了得到我需要的东西,页面大小已经关闭.因此增加显示所有外连接都通过,但它们没有正确构造.所以我添加了@Fetch注释来解决这个问题.

     @OneToMany(mappedBy="badge", fetch=FetchType.EAGER)
     @Fetch(value=FetchMode.SELECT)
     public List<BadgeLevel> getBadgeLevels() {
        return this.badgelevels;
     }
Run Code Online (Sandbox Code Playgroud)