【发布时间】:2014-09-06 22:55:11
【问题描述】:
我有 2 个表 'orders' 和 'orderlines' 并使用双向 OneToMany 映射。当我保存订单时,记录已成功插入表 'orders'。但我的 'orderlines' 表是空的。没有插入记录。
这是Controller中的保存操作代码。
@RequestMapping(value = "ordersuccess", method = RequestMethod.POST)
public String processOrder(@ModelAttribute("order") Order order,
@ModelAttribute("cart") Cart cart,
BindingResult result) {
if (!result.hasErrors()) {
Set<OrderLine> orderLines = new HashSet<OrderLine>();
for(CartLine c : cart.getCartLines()) {
OrderLine line = new OrderLine();
line.setOrder(order);
line.setProduct(c.getProduct());
line.setProductPrice(c.getProduct().getPrice());
line.setTotalPrice(c.getPrice());
orderLines.add(line);
order.setOrderLines(orderLines);
}
orderService.save(order);
orderLineService.save(orderLine);
}
return "ordersuccess";
}
谁能指出我做错了什么。
编辑: OrderLine.java
public class OrderLine {
@Id
@GeneratedValue
@Column(name="orderline_id")
private int orderline_id;
@ManyToOne
@JoinColumn(name = "order_id")
private Order order;
@ManyToOne(targetEntity = Product.class,
cascade = CascadeType.ALL,
fetch = FetchType.LAZY)
@JoinTable(
name="products",
joinColumns=@JoinColumn(name="product_id")
)
private Product product;
)
Order.java
public class Order {
@Id
@GeneratedValue
@Column(name="id")
private int id;
@OneToMany(mappedBy = "order")
private Set<OrderLine> orderLines;
//getter/setter
【问题讨论】:
标签: spring hibernate spring-mvc hibernate-mapping