Java 具有多个关联的Hibernate获取

Java 具有多个关联的Hibernate获取,java,spring,hibernate,Java,Spring,Hibernate,我是针对实体对象上的延迟加载集合执行此操作的: @Transactional(readOnly = true) public T getWithAssociation(final long id, String association) { Session session = sessionFactory.getCurrentSession(); final Criteria crit = session.createCriteria(genericType); crit

我是针对实体对象上的延迟加载集合执行此操作的:

@Transactional(readOnly = true)
public T getWithAssociation(final long id, String association) {
    Session session = sessionFactory.getCurrentSession();
    final Criteria crit = session.createCriteria(genericType);
    crit.setFetchMode(association, FetchMode.JOIN);
    crit.add(Property.forName("id").eq(id));
    return (T) crit.uniqueResult();
}
我想返回一个实体对象,其中加载了多个延迟加载的集合,我可以这样做吗(传入一个列表并为单个条件设置多个关联?)

@Transactional(readOnly=true)
公共T getWithAssociations(最终长id,列表关联){
Session Session=sessionFactory.getCurrentSession();
最终标准crit=session.createCriteria(genericType);
for(字符串关联:关联){
crit.setFetchMode(关联,FetchMode.JOIN);
}
标准添加(Property.forName(“id”).eq(id));
返回(T)crit.uniqueResult();
}
是吗

报告包括以下内容:

List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like("name", "Fritz%") )
    .setFetchMode("mate", FetchMode.EAGER)
    .setFetchMode("kittens", FetchMode.EAGER)
    .list();
此查询将通过外部联接获取配偶和小猫。有关更多信息,请参阅第20.1节“获取策略”

List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like("name", "Fritz%") )
    .setFetchMode("mate", FetchMode.EAGER)
    .setFetchMode("kittens", FetchMode.EAGER)
    .list();