2
我有一個Ebean實體模型3個@OneToMany關係有關這樣的實體:刪除級聯與本地查詢
public class A extends Model {
@Id
@GeneratedValue
public Long id;
public String name;
@OneToMany(cascade = CascadeType.ALL)
public List<B> bList;
...
}
public class B extends Model {
@Id
@GeneratedValue
public Long id;
public String name;
@OneToMany(cascade = CascadeType.ALL)
public List<C> cList;
...
}
public class C extends Model {
@Id
@GeneratedValue
public Long id;
public String name;
...
}
我想刪除特定的目的的人B和C。我知道Ebean可以照顧刪除銫,如果我做這樣的事情:
for (B b : a.bList) {
b.delete();
}
但我不認爲這是最好的解決方案。我想讓這樣的事情:
String sql = "DELETE FROM B WHERE B.a_id="+a.id;
SqlUpdate update = Ebean.createSqlUpdate(sql);
update.execute();
但它是一個本地的SQL,它輸出「ConstraintViolationException」,因爲它沒有一個「ON DELETE CASCADE」。
什麼是最好的解決方案?