4
假设我有两个实体:组织和用户。每个用户都可以成为许多组织的成员,并且每个组织都可以拥有许多用户。如何从与JPA和休眠中的许多孩子的@ManyToMany关系中删除子对象
@Entity
public class User {
@ManyToMany
Set<Organization> organizations;
//...
}
@Entity
public class Organization {
@ManyToMany(mappedBy="organizations")
Set<User> users;
//...
}
现在,我想删除一个组织(假设它有1000个成员)。 当用户有一些组织,这个代码是确定:
void removeOrgFromUser(Integer userId,Integer orgId){
User user = session.load(User.class, userId);
for (Organization org : user.organizations) {
if(org.getId().equals(orgId))
user.organizations.remove(org);
}
session.update(user);
}
但是当组织数为10000,这个解决方案没有很好的表现。
我该如何解决?
从连接表中删除行。 – Antoniossss
我想用hibernate或hql来做这件事, –
@Antoniossss with sql native? –