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();