0
我正在開發一個網站,它有很多關係很多。這意味着通常當我刪除某些東西時,它可能會與其他大量東西相關聯,從而導致刪除太多東西。在這方面,我想問你幾件事:播放 - ebean級聯刪除選項
- 什麼是級聯選項以及如何禁用級聯刪除。
- 比方說,我們有下面的情況:
類任務:
@Entity
public class Task extends Model {
@Id
public Long id;
@Required
public String label;
@ManyToMany
public List<User> users = new ArrayList();
public void addUser(User user){
users.add(user);
}
public static List<Task> all(){
return find.all();
}
public static Finder<Long,Task> find = new Finder(
Long.class, Task.class
);
public static void create (Task task){
task.save();
}
public static void delete (Long id){
find.ref(id).delete();
}
}
CLASS USER:
@Entity
@Table(name="Users")
public class User extends Model {
@Id
public Long id;
@Required
public String Name;
@ManyToMany
public List<Task> tasks = new ArrayList();
public static List<User> all(){
return find.all();
}
public static Finder<Long,User> find = new Finder(
Long.class, User.class
);
public static void create (User user){
user.save();
}
public static void delete (Long id){
find.ref(id).delete();
}
public void addTask(Task task){
tasks.add(task);
}
}
正如你所看到的任務有很多用戶和用戶之間有很多任務。當我刪除一個對象時,我不僅要刪除對象本身,還要刪除其他對象對這個對象的引用。舉例來說:
用戶John有三個任務要做:A,B和C 任務A,B和C也分配給其他用戶。 我想刪除John並將John的數據庫引用刪除到A,B和C. 我不想刪除A,B和C任務,因爲它們仍在使用中。
我在這種情況下使用了哪些級聯選項?