Fixing RoleMembershipImExporter
parent
283049f8e9
commit
aef849ece8
|
|
@ -73,19 +73,6 @@ public class CategoryIdResolver implements Serializable, ObjectIdResolver {
|
|||
.save(category);
|
||||
return category;
|
||||
}
|
||||
//
|
||||
// return CdiUtil
|
||||
// .createCdiUtil()
|
||||
// .findBean(CategoryRepository.class)
|
||||
// .findByUuid(id.key.toString())
|
||||
// .orElseThrow(
|
||||
// () -> new IllegalArgumentException(
|
||||
// String.format(
|
||||
// "No Category with UUID %s in the database.",
|
||||
// id.key.toString()
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -23,12 +23,17 @@ import org.libreccm.imexport.Exportable;
|
|||
import org.libreccm.imexport.Processes;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Root;
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
/**
|
||||
|
|
@ -51,7 +56,42 @@ public class RoleMembershipImExporter
|
|||
@Override
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected void saveImportedEntity(final RoleMembership entity) {
|
||||
entityManager.persist(entity);
|
||||
final CriteriaBuilder criteriaBuilder = entityManager
|
||||
.getCriteriaBuilder();
|
||||
final CriteriaQuery<RoleMembership> criteriaQuery = criteriaBuilder
|
||||
.createQuery(RoleMembership.class);
|
||||
final Root<RoleMembership> from = criteriaQuery.from(
|
||||
RoleMembership.class
|
||||
);
|
||||
criteriaQuery.where(
|
||||
criteriaBuilder.equal(
|
||||
from.get("role"),
|
||||
entity.getRole()
|
||||
)
|
||||
);
|
||||
criteriaQuery.where(
|
||||
criteriaBuilder.equal(
|
||||
from.get("member"),
|
||||
entity.getMember()
|
||||
)
|
||||
);
|
||||
final TypedQuery<RoleMembership> query = entityManager.createQuery(
|
||||
criteriaQuery
|
||||
);
|
||||
final List<RoleMembership> results = query.getResultList();
|
||||
if (results.isEmpty()) {
|
||||
final RoleMembership membership = new RoleMembership();
|
||||
membership.setUuid(entity.getUuid());
|
||||
membership.setMember(entity.getMember());
|
||||
membership.setRole(entity.getRole());
|
||||
entityManager.persist(membership);
|
||||
}
|
||||
|
||||
// if (entity.getMembershipId() == 0) {
|
||||
// entityManager.persist(entity);
|
||||
// } else {
|
||||
// entityManager.merge(entity);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue