1
私はManyToOneマッピングを持っています.Parentを削除すると、すべての子要素を削除したいと思います。私はhere以上の解決策を見て、そのような論理を達成するために双方向関係を持つ必要はないが、私の場合はうまくいかないことを知りました。Hibernate @OnDelete(action = OnDeleteAction.CASCADE)が動作しない
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
@Entity
@Table(name="SubOrder")
public class SubOrder {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="order_seq")
@SequenceGenerator(name = "order_seq", initialValue=1000000000, allocationSize=1, sequenceName="order_auto_seq")
@Column(name="sub_order_id")
private long subOrder;
@Column(name="product_name" , length=50)
private String productName;
@Column(name="Date")
private String date;
@ManyToOne()
@Cascade({CascadeType.PERSIST})
@OnDelete(action = OnDeleteAction.CASCADE)
private Order order;
public Order getOrder() {
return order;
}
//Getters and setters
は以下
@Entity
@Table(name="Orders")
public class Order {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="order_seq")
@SequenceGenerator(name = "order_seq", initialValue=1000000000, allocationSize=1, sequenceName="order_auto_seq")
@Column(name="order_number")
private long orderNumber;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="Order_date")
private Date date= new Date();
//Getters and setters
マイ削除コード
Order result =session.get(Order.class, 1000000000l);
session.delete(result);
上記のコードは、注文(親)ではなく、子要素を削除し、私の親クラスです。
マイ休止-cfg.fileここで間違っている可能性が何
<property name="hbm2ddl.auto">update</property>
?