[英]Can you use HIbernate fetch type LAZY but use EAGER sometimes
我有一个班级歌曲 ,其中包含与CoverArt班级的惰性关联
@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name = "recNo")
private List<CoverArt> coverArts;
很好,我通常不需要CoverArt对象,但是有时候我需要
那么我将如何修改诸如
public static List<Song> getSongsWithCoverArtFromDatabase(Session session, List<Integer> ids)
{
Criteria c = session
.createCriteria(Song.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.add(Restrictions.in("recNo", ids));
List<Song> songs = c.list();
return songs;
}
以便为每首歌曲检索CoverArt
您可以使用Criteria
setFetchMode
设置运行时的获取模式,如下所示,
Criteria c = session
.createCriteria(Song.class)
.setFetchMode("coverArts", FetchMode.EAGER)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.add(Restrictions.in("recNo", ids));
有关更多信息, 请https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/FetchMode.html和https://kodejava.org/how-do-i-set-the-fetch-模式换标准关联/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.