사용자와 사용자 목록이 2 개 있습니다.최대 절전 모드 @ManyToMany 관계 삭제
@Entity
@Table(name = "USERS")
public class User {
@Id
@GeneratedValue
@Column(name = "ID")
private Long id;
@ManyToMany(cascade = CascadeType.REMOVE, mappedBy = "users")
private List<UsersList> usersLists = new ArrayList<UsersList>();
public List<UsersList> getUsersLists() {
return usersLists;
}
public void setUsersLists(List<UsersList> usersLists) {
this.usersLists = usersLists;
}
}
이 같은
@Entity
@Table(name = "USERS_LIST")
public class UsersList {
@Id
@GeneratedValue
@Column(name = "ID")
private Long id;
@ManyToMany
private List<User> users = new ArrayList<User>();
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
코드 : 1 단계에서
deleteWithHibernate(Long id) {
User usr = hibernateTemplate.get(User.class, id);
hibernateTemplate.delete(usr);
}
I가 사용자에 3 개 행이
// 1
List<User> dbUsers; // 3 the user instances are persisted in DB
UsersList usersList = new UsersList();
usersList.setUsers(dbUsers);
// 2 - now persist the usersList using hibernate...
saveWithHibernate(usersList);
//3 - delete using a persisted user
deleteWithHibernate(dbUsers.get(0).getId());
(USER_ID) 도표 .
2 단계 (두 번째 주석) 다음에는 USERS_LIST (USERS_LIST_ID) 테이블과 조인 테이블 USERS_LIST_USERS (USER_ID, USERS_LIST_ID) 3 행에 1 행이 있습니다.
3 단계에서 달성하고자하는 것은 다음과 같습니다. USERS 테이블에서 한 명의 사용자를 삭제할 때 USER_ID = 4 인 사용자를 말하면 USER_ID = 4 인 행만 삭제할 수 있습니다. , 나머지는 남아 있습니다.
내 문제의 주석 솔루션이 있습니까?
deleteWithHibernate 메서드는 어떻게 생겼습니까? –