当前位置: 代码迷 >> J2EE >> 数据库 取出是object 如何转
  详细解决方案

数据库 取出是object 如何转

热度:618   发布时间:2016-04-22 03:20:31.0
数据库 取出是object 怎么转
我用的是spring2+struts2+jpa

我其它的表都annotation,我有一个操作是从三个表里读数据。读出的数据我不知道怎么存放。就自己那了一个orderDetailList里面从这三个表读出的字段,所以读的时候我写
Query query = getEntityManager().createQuery(...);
return query.getResultList();

我在action的返回值接收为
this.orderDetailList = tableInfo_tableService.getOrderDetail_tableDetail(id);
return ACTION.SUCCESS;

但是因为orderDetailList 的数据类型不是数据库里的字段。返回进去都是Object类型。里面的数据基本拿不出来。
虽然从数据库里读出来的跟我定义的类型一一对应的放着,但是它不认的定义的类型,而是Object.
我强制类型转换(OrderDetail_table)query.getResultList()也不行。

谁能帮我想个办法,让我把里面的值拿出来(能不能按我定义的类型读出来)急,特别急。我都不睡了。谢谢大家。。。

------解决方案--------------------
汗。。。。
楼主从3个表里面取字段,返回的是一个装有Object数组的list啊。
定义一个bean,分别对应你取的字段;
声明一个该bean的list,然后迭代查询到的list,把对应的数据set到bean的list里面去
从而转化成一个装着bean的list了。。

------解决方案--------------------
如果你是查询的几个关联表的话,那么返回的是一个标量的结果集合,随便举个例子
Java code
Iterator results = this.orderDetailList.iterator();        while ( results.hasNext() ) {    Object[] row = (Object[]) results.next();    Color type = (Color) row[0];    Date oldest = (Date) row[1];    Integer count = (Integer) row[2];    .....}
------解决方案--------------------
楼主这个问题好解决啊!~!
你从三张表中查询的东西返回的必然是一个List<Object[]>形式的啊~!
你只需要用List<Object[]>接收@!~!
然后用一个增强的for循环,
循环里面肯定会用一个
Object[] objects = (Object[])XXX.next();
然后用objects[0],object[1],object[2].......去读取你查询到的东西~!~!
这样做绝对没有错的!~!呵呵!~!
楼主可以试一下,会很快解决的!~!
  相关解决方案