`
pxs623
  • 浏览: 79621 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

解决org.hibernate.collection.PersistentSet 的页面取值

阅读更多

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 set 集合映射

    在Hibernate的源代码中,`org.hibernate.collection.internal.PersistentSet`是用于持久化Set的实现。这个类继承自`PersistentCollection`,并实现了`org.hibernate.engine.spi.CascadingAction`接口,用于处理级联...

    hibernate-3.2源码包

    《深入剖析Hibernate 3.2源码》 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。本篇将深入探讨Hibernate 3.2的源码,揭示其内部机制,帮助开发者更好地理解和利用...

    hibernate懒加载策略.doc

    - 针对集合类型的延迟加载,Hibernate做了特别优化,如使用自定义的JDK Collection实现,如`PersistentSet`、`PersistentList`等。这些集合在初始化时不加载元素,只有在迭代或访问集合内的元素时,才触发数据库...

    Hibernate 延迟加载剖析与代理模式应用

    在调试模式下,我们可以观察到`addresses`属性实际上是Hibernate提供的`PersistentSet`实例,它是一个特殊的集合,不包含实际的数据,而是在需要时触发数据库查询来填充数据。 然而,这里涉及到一个关键问题:如何...

    mesos-state-backed-collections:由 Mesos 状态 API 的实现支持的持久性集合类型

    import org . apache . mesos . state . AbstractState import scala . concurrent . Future val state : AbstractState = // ... case class Person ( name : String , age : Int ) val personFormatter = new ...

    kotlinx.collections.immutable,Kotlin的不可变集合原型.zip

    1. **PersistentSet**:这是不可变的Set接口实现,例如`PersistentHashSet`,一旦创建就无法添加或删除元素,但可以通过创建一个新的集合来添加或移除元素,而不会影响原始集合。 2. **PersistentList**:如`...

    FunctionalCollections.jl:Julia的功能性和持久性数据结构

    " FunctionalCollections " )julia > using FunctionalCollections出口产品 Collection | Abbrev----------------------------PersistentVector | pvecPersistentHashMap | phmapPersistentArrayMap |PersistentSet ...

    java学习笔记

    当加载实体时,并不会立即加载关联的集合,而是返回一个代理对象`PersistentSet`,并持有一个`HibernateSession`对象。只有当真正访问集合时才会加载数据,这有助于提高应用程序的性能。 - **HibernateTemplate**:...

    kotlinx.collections.immutable:Kotlin的不可变持久集合

    2. **PersistentSet**:不可变的集合,不允许重复元素,支持高效的成员检查操作。 3. **PersistentMap**:不可变的键值对集合,不允许重复键,支持高效的键查找和更新操作。 4. **PersistentVector**:高效且空间...

Global site tag (gtag.js) - Google Analytics