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)
为了得到我需要的东西,页面大小已经关闭.因此增加显示所有外连接都通过,但它们没有正确构造.所以我添加了@Fetch注释来解决这个问题.
@OneToMany(mappedBy="badge", fetch=FetchType.EAGER)
@Fetch(value=FetchMode.SELECT)
public List<BadgeLevel> getBadgeLevels() {
return this.badgelevels;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7832 次 |
| 最近记录: |