Hibernate criteria.setFetchMode(“”)不起作用

问题描述 投票:4回答:1

我有一个简单的Criteria,像这样:

    final Criteria players = session.createCriteria(Players.class).add(Restrictions.idEq(1));    
    final Criteria team = players.createCriteria("team","team").add(notDeleted());    

我需要一个与ID=1的球员,球队没有被删除这是工作正常但我需要奇怪的Owner of the team and the address of the owner.这是行不通的..

team.createCriteria("owner").setFetchMode("address",FetchMode.JOIN);

这既不起作用:

team.createCriteria("owner").setFetchMode("owner.address",FetchMode.JOIN);

在这里,我有主人,但我没有地址。但Address is not fetched.为什么这是我有所有者我可以有地址?

但这很有效。

team.setFetchMode("owner",FetchMode.JOIN).setFetchMode("owner.address",FetchMode.JOIN);

为什么这个?

任何帮助都非常感激。

非常感谢。 UPDATE

我的模型很简单。

一支球队有很多球员1-N的关系。一个团队有一个所有者。 N-1关系。所有者有一个地址。

多个玩家 - > oneTeam-> one-owner-> oneAddress。

java hibernate criteria fetch
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.