休眠3在删除级联

问题描述:

我有一个多对一的预订映射。 预订必须属于一个房间。而一个房间可以有几个预订。休眠3在删除级联

如果某个房间被删除,我希望该房间的所有预订也被删除。 我将如何去做这个使用hibernate注释?

@Entity 
public class Booking implements Serializable{ 

    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 
    private Date startDate; 
    private Date endDate; 
    private Date createdDate; 

    @ManyToOne 
    @JoinColumn (name = "roomId") 
    private Room room; 
... 
} 

在你Room实体,你可以有一个

@OneToMany(cascade=CascadeType.REMOVE) 
private List<Booking> bookings; 
+0

我没有预订的在我的房间实体列表。如果可能的话,我想保持这种方式。在没有向房间介绍预订的情况下,有没有办法做到这一点? – user829237

+0

不可以。但是,添加收款并不会导致任何费用(默认情况下会延迟) – Bozho

使用

@ManyToOne(cascade = CascadeType.REMOVE) 
+1

当某个预订被移除时,这将删除房间,或者如果房间与其他预订相关联,它肯定会尝试并可能导致约束违规。 –

+0

这不起作用...尝试删除房间时仍出现约束错误。 – user829237

+0

@Andrei,我们在这里都是错误的,因为多对一的注解没有orphanRemoval属性。 :)但谢谢你。我没有注意到它是多对一的,我认为它是一对多的:)我将在稍后删除它:) +1评论 –