cascade delete for users

This commit is contained in:
Athou
2013-06-16 18:03:52 +02:00
parent bc8eed7a62
commit 897b482698
2 changed files with 15 additions and 14 deletions

View File

@@ -6,6 +6,8 @@ import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
@@ -45,9 +47,13 @@ public class User extends AbstractModel {
@Temporal(TemporalType.TIMESTAMP)
private Date recoverPasswordTokenDate;
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST)
@OneToMany(mappedBy = "user", cascade = { CascadeType.PERSIST,
CascadeType.REMOVE })
private Set<UserRole> roles = Sets.newHashSet();
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private Set<FeedSubscription> subscriptions;
public String getName() {
return name;
}
@@ -128,4 +134,12 @@ public class User extends AbstractModel {
this.recoverPasswordTokenDate = recoverPasswordTokenDate;
}
public Set<FeedSubscription> getSubscriptions() {
return subscriptions;
}
public void setSubscriptions(Set<FeedSubscription> subscriptions) {
this.subscriptions = subscriptions;
}
}

View File

@@ -11,14 +11,11 @@ import org.apache.commons.codec.digest.DigestUtils;
import com.commafeed.backend.dao.FeedCategoryDAO;
import com.commafeed.backend.dao.FeedEntryStatusDAO;
import com.commafeed.backend.dao.FeedSubscriptionDAO;
import com.commafeed.backend.dao.UserDAO;
import com.commafeed.backend.dao.UserRoleDAO;
import com.commafeed.backend.dao.UserSettingsDAO;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.google.common.base.Preconditions;
@Stateless
@@ -30,18 +27,12 @@ public class UserService {
@Inject
FeedEntryStatusDAO feedEntryStatusDAO;
@Inject
FeedSubscriptionDAO feedSubscriptionDAO;
@Inject
FeedCategoryDAO feedCategoryDAO;
@Inject
UserSettingsDAO userSettingsDAO;
@Inject
UserRoleDAO userRoleDAO;
@Inject
PasswordEncryptionService encryptionService;
@@ -90,12 +81,8 @@ public class UserService {
}
public void unregister(User user) {
feedEntryStatusDAO.delete(feedEntryStatusDAO.findAll(user, false,
ReadingOrder.desc, false));
feedSubscriptionDAO.delete(feedSubscriptionDAO.findAll(user));
feedCategoryDAO.delete(feedCategoryDAO.findAll(user));
userSettingsDAO.delete(userSettingsDAO.findByUser(user));
userRoleDAO.delete(userRoleDAO.findAll(user));
userDAO.delete(user);
}