我有5个表book:图书、 user:用户、 orders:订单、 orderitem:订单项、 catalog:图书分类
表之间的关系:
user 1------N orders
orders 1------N orderitem
orderitem N-----1 book
book 1-----N catalog
使用Hibernate 通过用户ID来查询orders、orderitem、book三个表中字段
HQL="from Book b,Orders o,Orderitem i where o.orderid=i.orders.orderid and i.book.bookid=b.bookid and o.user.userid="+userid;执行完成之后得到的List。问题来了: 因为使用了Spring,所以在查询得到的结果Spring会自动反射到Orders、Orderitem、Book三个对象!而Hibernate执行结果是一个List,我要怎样才能得到这三个对象数组???---通过自己debug,发现得到的List中确实能够看到生成了对象数组!!分就给50,谁要是能够帮小弟解决,50分都给他了.......
表之间的关系:
user 1------N orders
orders 1------N orderitem
orderitem N-----1 book
book 1-----N catalog
使用Hibernate 通过用户ID来查询orders、orderitem、book三个表中字段
HQL="from Book b,Orders o,Orderitem i where o.orderid=i.orders.orderid and i.book.bookid=b.bookid and o.user.userid="+userid;执行完成之后得到的List。问题来了: 因为使用了Spring,所以在查询得到的结果Spring会自动反射到Orders、Orderitem、Book三个对象!而Hibernate执行结果是一个List,我要怎样才能得到这三个对象数组???---通过自己debug,发现得到的List中确实能够看到生成了对象数组!!分就给50,谁要是能够帮小弟解决,50分都给他了.......
解决方案 »
- spring.tld与spring-form.tld这两个文件有什么作用
- JBoss开发EJB3.0,无法找到EntityBean问题。(SessionBean正常)
- websphere 加载不到native library
- 请问哪位大哥知道有什么好的webservice学习资料不
- jpg显示图片
- Hibernate分页问题!(在线等! 有答案就给分!)
- 大家来救急:hibernate程序在TOMCAT中能运行,在WEBLOGIC中却不行?
- log4j继承Appenders的问题?
- 如何让ServerSocket监听一段时间后关掉,再重新监听!
- jboss3.2.1-tomcat+oracle8.1.6 关于cmp键值自动增长的问题
- dwr + spring 2.5
- 为什么我的JPS工具无法显示我的JAVA APP 进程状态
object[0] = ...
object[1] = ...
object[2] = ...
list.get(i) 得到的不是一个object吗 能够用数组?
可以调用User的findById方法,把这个User查到,然后用关联映射一级一级的拿Book,Orders,Orderitem
List的长度是该用户所有订单的所有订单项之和。
给你这个思路,你一定要用现在的差法,自己慢慢拆去吧。
首先要给3个实体类实现Comparable接口List<Book> bookList = new ArrayList<Book>();
List<Orders> ordersList = new ArrayList<Orders>();
List<Orderitem> orderItemList = new ArrayList<Orderitem>();
for (int i = 0; i < list.size(); i++) {
Object[] array = (Object[]) list.get(i);
Book book = (Book) array[0];
Orders orders = (Orders) array[1];
Orderitem orderItem = (Orderitem) array[2];
if (!bookList.contains(book)) {
bookList.add(book);
}
if (!ordersList.contains(orders)) {
ordersList.add(orders);
}
if (!orderItemList.contains(orderItem)) {
orderItemList.add(orderItem);
}
}
Book[] bookArray = new Book[bookList.size()];
bookArray = bookList.toArray(bookArray);
Orders[] ordersArray = new Orders[ordersList.size()];
ordersArray = ordersList.toArray(ordersArray);
Orderitem[] orderItemArray = new Orderitem[orderItemList.size()];
orderItemArray = orderItemList.toArray(orderItemArray);
Orders order = (Order)row[0];
OrderItem item = (OrderItem)row[1];
Book book = (Book)row[2];