我数据库中有张Accounts表,表情况如下:CREATE TABLE `accounts` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`userid` bigint(20) unsigned NOT NULL default '0',
`price` float NOT NULL default '0',
`place` varchar(60) NOT NULL default '',
`comment` text,
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`accountid` bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8;直接将表中一条记录取出,转换成Accounts实体对象没有问题,userid对应唯一的会员编号,会员信息保存在另一张userinfo表中
可现在我只需啊被accountid取出userid与comment,并根据userid去userinfo找到对应的会员名称,其方法如下: public List getGoodsComment(Long gid) {
List list=null;
Transaction tx = null;
Session session = this.getSession();
try {
tx = session.beginTransaction();
Query q = session.createQuery("select userid,note from Accounts where accountid =:gid);
q.setLong("gid", gid);
list=q.list();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
} finally {
session.close();
}
return list; }
这个时候返回一个list,因为这个list中又包含了一个list
我开始以为可以直接用 List a = list.get[i]将其中的list取出,提示错误无法将object转换为list,强制加上(List)也不行。
因为以前都是直接 List a = (accounts)list.get[i]
可由于这次只取出了部分数据,所以也无法转换。请问如何将这个应该如何处理呢?重新写一个POJO类?
`id` bigint(20) unsigned NOT NULL auto_increment,
`userid` bigint(20) unsigned NOT NULL default '0',
`price` float NOT NULL default '0',
`place` varchar(60) NOT NULL default '',
`comment` text,
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`accountid` bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8;直接将表中一条记录取出,转换成Accounts实体对象没有问题,userid对应唯一的会员编号,会员信息保存在另一张userinfo表中
可现在我只需啊被accountid取出userid与comment,并根据userid去userinfo找到对应的会员名称,其方法如下: public List getGoodsComment(Long gid) {
List list=null;
Transaction tx = null;
Session session = this.getSession();
try {
tx = session.beginTransaction();
Query q = session.createQuery("select userid,note from Accounts where accountid =:gid);
q.setLong("gid", gid);
list=q.list();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
} finally {
session.close();
}
return list; }
这个时候返回一个list,因为这个list中又包含了一个list
我开始以为可以直接用 List a = list.get[i]将其中的list取出,提示错误无法将object转换为list,强制加上(List)也不行。
因为以前都是直接 List a = (accounts)list.get[i]
可由于这次只取出了部分数据,所以也无法转换。请问如何将这个应该如何处理呢?重新写一个POJO类?
只有from ......这样的语句才会是实体类,其他的就是一个object数组了
object[0][0],object[0][1]
object[1][0],object[1][1]
object[2][0],object[2][1]...
select new User(user.username,group) from User user ,Group group where ....
谢谢大家,已经用object数组解决问题了,不过这里的from User user,Group group是什么意思呢?