package org.brixcms.plugin.usermgmt;
import java.util.List;
import javax.persistence.EntityManager;
import org.springframework.data.repository.CrudRepository;
import org.springframework.transaction.annotation.Transactional;
/**
* @author dan.simko@gmail.com
*/
public abstract class AbstractManagementService<T extends BaseEntity> implements ManagementService<T> {
protected final EntityManager em;
public AbstractManagementService(EntityManager em) {
this.em = em;
}
@Override
@Transactional
public void clone(List<T> entities) {
for (T user : entities) {
em.detach(user);
user.setId(null);
em.persist(user);
}
}
@Override
@Transactional
public void delete(List<T> entity) {
getRepository().delete(entity);
}
@Override
@Transactional
public void save(T entity) {
getRepository().save(entity);
}
protected abstract CrudRepository<T, Long> getRepository();
}