Fixing RoleMembershipImExporter
parent
283049f8e9
commit
aef849ece8
|
|
@ -73,19 +73,6 @@ public class CategoryIdResolver implements Serializable, ObjectIdResolver {
|
||||||
.save(category);
|
.save(category);
|
||||||
return 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
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,17 @@ import org.libreccm.imexport.Exportable;
|
||||||
import org.libreccm.imexport.Processes;
|
import org.libreccm.imexport.Processes;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.NoResultException;
|
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;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -51,7 +56,42 @@ public class RoleMembershipImExporter
|
||||||
@Override
|
@Override
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected void saveImportedEntity(final RoleMembership entity) {
|
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
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue