【发布时间】:2014-04-07 21:17:34
【问题描述】:
-
销售订单实体。
@Entity @Table(name = "sales_orders") @IdClass(ReceiptPK.class) public class SalesOrders implements Serializable { public SalesOrders() { } @Id protected Integer receiptID; @Id protected Integer dateKey; public SalesOrders(Integer receiptID, Integer dateKey) { this.receiptID = receiptID; this.dateKey = dateKey; } //order contains many details @OneToMany(fetch = FetchType.LAZY, mappedBy = "salesOrders") @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE}) private Set<SalesOrderDetails> orderDetails = new HashSet<SalesOrderDetails>(); public Set<SalesOrderDetails> getOrderDetails() { return orderDetails; } public void setOrderDetails(Set<SalesOrderDetails> orderDetails) { this.orderDetails = orderDetails; } // other property .. -
订单详情实体。
@Entity @Table(name = "sales_order_details") public class SalesOrderDetails implements Serializable { public SalesOrderDetails() { } private int id; @Id @GeneratedValue(strategy = GenerationType.AUTO) public int getId() { return id; } public void setId(int id) { this.id = id; } // Order holder private SalesOrders salesOrders; @ManyToOne @JoinColumns({ @JoinColumn(name = "order_num", referencedColumnName = "receiptID"), @JoinColumn(name = "date_key", referencedColumnName = "dateKey")}) public SalesOrders getSalesOrders() { return salesOrders; } public void setSalesOrders(SalesOrders salesOrders) { this.salesOrders = salesOrders; } // other property ...
我的问题:当我尝试删除不影响sales_order_details 的订单商品时。
SalesOrders saleOrder = (SalesOrders) getSession().get(SalesOrders.class ,new ReceiptPK(receiptID,dateKey));
saleOrder.getOrderDetails().remove(someDetails);
getSession().beginTransaction();
getSession().saveOrUpdate(saleOrder);
getSession().getTransaction().commit();
但someDetails 没有被删除。
-- 任何帮助将不胜感激...
【问题讨论】:
标签: java mysql hibernate annotations