Hibernate Lazy Loaded Entites Id

时间:2015-06-08 19:23:28

标签: java mysql hibernate

问题,我目前正在使用hibernate,我想知道是否有任何方法可以获取延迟加载的实体ID的值而无需再次访问数据库?例如,我们目前有一个名为group的实体,与另一个实体Organization有ManyToOne的关系。

当我们调用一个简单的存储库方法时 groupsRepository.findByUser(id)它返回基于给定用户的组列表。查询看起来像这样

select
    groups0_.PersonId as PersonId1_118_1_,
    groups0_.GroupId as GroupId2_8_1_,
    groups1_.GroupID as GroupID1_74_0_,
    groups1_.CreatedAt as CreatedA2_74_0_,
    groups1_.CreatedBy as CreatedB3_74_0_,
    groups1_.Description as Descript4_74_0_,
    groups1_.Name as Name5_74_0_,
    groups1_.OrganizationID as Organiza9_74_0_,
    groups1_.Role as Role6_74_0_,
    groups1_.Status as Status10_74_0_,
    groups1_.TouchedAt as TouchedA7_74_0_,
    groups1_.TouchedBy as TouchedB8_74_0_ 
from
    Groupsofpeople groups0_ 
inner join
    groups groups1_ 
        on groups0_.GroupId=groups1_.GroupID 
where
    groups0_.PersonId=?

稍后我需要通过比较OrganizaitonId(已经从数据库获取的值)来查看组织组织是否与我所做的其他组织相同。但是每次我这样做,我都会从数据库中获取组织,无论如何要防止这样做,以便附加到组的组织将预先填充它的id,因为它已经被提取了?或者这只是我在使用休眠时必须做出的让步?

0 个答案:

没有答案