這裏是例子:如何刪除父實體並在hibernate的子FK列中設置null?
@Entity(name="Cat")
public class Cat
{
@ManyToOne
@JoinColumn(name="FoodId",nullable=true)
public Food getFood()
{
// code
...
}
@Entity(name="Food")
public class Food
{
@OneToMany(mappedBy="food",cascade=?
public List<Cat> getCats()
{
// other code
...
}
我想刪除一些食物的實體,所以cat.foodId列設置爲貓,誰該食品null值。
Food fish=new Food()
Cat bazillio=new Cat()
bazillio.food=fish
context.remove(fish)
if (bazilio.food==null) success()
Cascade.ALL在我的理解將刪除所有與這種食物的貓(或不是?)那麼如何解決這個任務?
謝謝。但在SQL中,我用約束來做到這一點,在休眠時沒辦法做到這一點? –
沒錯,但這不是SQL。這是一個ORM。您對對象執行操作,框架將其轉換爲關係數據庫說話。你需要在對象中而不是在SQL中思考。這是您在Hibernate中使用它的正常方式。 –