hibernate 一对多映射的属性类型是set类型,不是list
页面上就不能${pojo.relations[0].xx}这样取值
设有 public class pojo{
private String id
private set relations;
}
public class relation{
private String id;
private String name;
}
如果是freemarker可以按照set取值的方式这样写
${poji.relations.iterator().next().id}//这里只取的第一个值
附上自己的一小段代码:
list = baseDao.findByHql(TUser.class, hql, null); if(null !=list && list.size()>0) for (TUser tUser : list) { super.getHibernateTemplate().initialize(tUser.getTOrganization()); super.getHibernateTemplate().initialize(tUser.getTUserRoleRelates()); //上面只能加载到TUserRoleRelates.id.role.roleId,如要获取roleName,roleDesc,继续加载! Set roleSet=tUser.getTUserRoleRelates(); if(!roleSet.isEmpty() && null!=roleSet){ Iterator it=roleSet.iterator(); //这里只取第一个结果,默认一个用户对应一个角色 TUserRoleRelate tRelate=(TUserRoleRelate)it.next(); //加载角色信息 super.getHibernateTemplate().initialize(tRelate.getId().getTRole()); } } return list;
ftl页面:
${item.TUserRoleRelates.iterator().next().id.TRole.roleName!}
相关推荐
在Hibernate的源代码中,`org.hibernate.collection.internal.PersistentSet`是用于持久化Set的实现。这个类继承自`PersistentCollection`,并实现了`org.hibernate.engine.spi.CascadingAction`接口,用于处理级联...
《深入剖析Hibernate 3.2源码》 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。本篇将深入探讨Hibernate 3.2的源码,揭示其内部机制,帮助开发者更好地理解和利用...
- 针对集合类型的延迟加载,Hibernate做了特别优化,如使用自定义的JDK Collection实现,如`PersistentSet`、`PersistentList`等。这些集合在初始化时不加载元素,只有在迭代或访问集合内的元素时,才触发数据库...
在调试模式下,我们可以观察到`addresses`属性实际上是Hibernate提供的`PersistentSet`实例,它是一个特殊的集合,不包含实际的数据,而是在需要时触发数据库查询来填充数据。 然而,这里涉及到一个关键问题:如何...
import org . apache . mesos . state . AbstractState import scala . concurrent . Future val state : AbstractState = // ... case class Person ( name : String , age : Int ) val personFormatter = new ...
1. **PersistentSet**:这是不可变的Set接口实现,例如`PersistentHashSet`,一旦创建就无法添加或删除元素,但可以通过创建一个新的集合来添加或移除元素,而不会影响原始集合。 2. **PersistentList**:如`...
" FunctionalCollections " )julia > using FunctionalCollections出口产品 Collection | Abbrev----------------------------PersistentVector | pvecPersistentHashMap | phmapPersistentArrayMap |PersistentSet ...
当加载实体时,并不会立即加载关联的集合,而是返回一个代理对象`PersistentSet`,并持有一个`HibernateSession`对象。只有当真正访问集合时才会加载数据,这有助于提高应用程序的性能。 - **HibernateTemplate**:...
2. **PersistentSet**:不可变的集合,不允许重复元素,支持高效的成员检查操作。 3. **PersistentMap**:不可变的键值对集合,不允许重复键,支持高效的键查找和更新操作。 4. **PersistentVector**:高效且空间...