java – 在hibernate查询返回的列表对象中迭代结果
发布时间:2020-12-14 23:22:00 所属栏目:Java 来源:网络整理
导读:我有hibernate查询如下: String mySql = "SELECT S.col1,S.col2,T.col3,T.col4,T.col5 FROM myTable S,myTable1 T WHERE S.id = :id and S.id = T.id";Query myQuery = this.em.createQuery(mySql);myQuery.setParameter("id","123");ListObject result = m
我有hibernate查询如下:
String mySql = "SELECT S.col1,S.col2,T.col3,T.col4,T.col5 FROM myTable S,myTable1 T WHERE S.id = :id and S.id = T.id"; Query myQuery = this.em.createQuery(mySql); myQuery.setParameter("id","123"); List<Object> result = myQuery.getResultList(); 表myTable和myTable1是实体类. myTO是一个简单的java类,其属性为col1,col2,col3,col4,col5. 上述查询的结果应该映射到myTO的属性. 如何迭代结果中的列?或者我是否错误地检索结果? 解决方法
您似乎正在尝试查询表的列的子集.为此,您可以使用Hibernate
documentation中的此示例:
Iterator kittensAndMothers = sess.createQuery( "select kitten,mother from Cat kitten join kitten.mother mother") .list() .iterator(); while ( kittensAndMothers.hasNext() ) { Object[] tuple = (Object[]) kittensAndMothers.next(); Cat kitten = (Cat) tuple[0]; Cat mother = (Cat) tuple[1]; .... } 如果您没有问题来检索整个实体(或至少它的第一级简单属性),您可以使用: List<Cat> cats = session.createQuery( "from Cat where cat.name = ?") .setString(0,name) .list(); for ( Cat cat : cats ) { Cat mother = cat.getMother(); ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- java – 为什么要在ResultSet和Connection实例上
- java – 如何设置在线考试的时间限制
- 为什么Java的scheduleWithFixedDelay使用Runnabl
- java – OSS实施Google应用引擎?
- Java Reflection参数类型匹配,如何处理接口而不是
- java – 使用Apache CXF注释的UsernameToken WS-
- java-新手随笔-关于Servlet+jdbc+jsp的分页样式
- Java EE App Server Hello World
- 什么是session?什么是cookie?session和cookie有
- java – Log4j,不同的appender,同一个包和一个单
热点阅读