由于你做的是双向映射Customer对应orders,Order对应customer,当使用双向映射时必须使用一下语法。
Customer customer=查询对象;
Order order=new Order();
调用order的set方法赋值
order.setCustomer(customer);---------1
customer.getOrders().add(order);--------2
必须1,2两个同时使用才能实现级联目的。我估计你是只调用了2,而没有调用1
Customer customer=查询对象;
Order order=new Order();
调用order的set方法赋值
order.setCustomer(customer);---------1
customer.getOrders().add(order);--------2
必须1,2两个同时使用才能实现级联目的。我估计你是只调用了2,而没有调用1
解决方案 »
- hibernate的find()方法报错
- 工程名路径问题,急~~~~~~~在线等
- 用swing做导出程序
- 一个axis做的web service 客户端程序执行时问题
- 关于liferay portal中开发的portlet的标题乱码
- 请问Lucene 查询结果中,如何显示出摘要的标点符号?
- org.apache.jasper.servlet.JspServlet
- java怎样读取日志config.ini
- 请问sun有没有提供一个直接能把整个xml文件中的所有元素都读出的方法????
- 求spring4 环境下 controller的单元测试的例子
- Java怎么生成一些统计图形如柱状图,饼图??
- 请问哪位大侠能告诉我,java怎样上传大型文件?
<set name="orders" cascade="save-update" inverse="true">
<key column="CUSTOMER_ID" />
<one-to-many class="com.mycurr.persistence.Order"/>
</set>
避免不必要的语句执行
Customer customer=new Customer();
........set methods
Order order1=new Order();
........set methods
Order order2=new Order();
........set methods
order.setCustomer(customer);
customer.getOrders().add(order1);
customer.getOrders().add(order2);
dao.save(customer);
这样不会错呀
以下是代码,我觉得没什么问题啊,谢谢你哈:
public class AddtocarAction extends Action {
CustomerService cs ; public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
HttpSession session= request.getSession();
Set orders = new HashSet();
Customer customer = new Customer();
ShoppingCar sc = new ShoppingCar();
OrderItem orderitem = new OrderItem();
Order order =null;
if(session.getAttribute("order")==null)
{
System.out.println("新建的ORDER");
gettime ordernum = new gettime();
order = new Order();
order.setOrderNumber(ordernum.getnowtime());
order.setDate(ordernum.getyearmonth());
System.out.println("新建的ORDER名称:"+order.getOrderNumber());
}
else
{
System.out.println("已有的ORDER");
order =(Order)session.getAttribute("order");
System.out.println("已有的ORDER名称:"+order.getOrderNumber());
}
String id = request.getParameter("id");
Integer iid= new Integer(id);
customertishi csts = (customertishi)session.getAttribute("csts");
Book innerbook = (Book)cs.uniqueResult("from Book where id ='"+ iid.intValue() +"'");
customer =(Customer)cs.uniqueResult("from Customer where login ='"+csts.getCustomername()+"'"); order.setCustomer(customer);
orderitem.setBook(innerbook);
orderitem.setBookprice(innerbook.getPrice());
orderitem.setBooknum(1);
orderitem.setOrder(order);
sc.addorderitem(orderitem);
order.setOrderitems(sc.getItems());
orders.add(order);
customer.setOrders(orders);
System.out.println("customer的iiiiidddddd是:"+ order.getCustomer().getId());
cs.saveOrUpdateCustomer(customer); session.setAttribute("order",order);
return mapping.findForward("addtocar");
}
public void setCs(CustomerService cs) {
this.cs = cs;
}
}