Import Categorizations after all other objects
parent
aef849ece8
commit
5e3f467904
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
package org.libreccm.imexport;
|
||||
|
||||
import org.libreccm.categorization.Categorization;
|
||||
import org.libreccm.core.UnexpectedErrorException;
|
||||
import org.libreccm.files.CcmFiles;
|
||||
import org.libreccm.files.CcmFilesConfiguration;
|
||||
|
|
@ -230,10 +231,35 @@ public class ImportExport {
|
|||
final List<EntityImExporterTreeNode> orderedNodes = treeManager
|
||||
.orderImExporters(tree);
|
||||
|
||||
// Put the node for Categorizations to the end of the list
|
||||
final EntityImExporterTreeNode categorizationsNode = orderedNodes
|
||||
.stream()
|
||||
.filter(
|
||||
node -> node.getEntityImExporter().getEntityClass().equals(
|
||||
Categorization.class
|
||||
)
|
||||
)
|
||||
.findAny()
|
||||
.orElseThrow(
|
||||
() -> new UnexpectedErrorException(
|
||||
String.format(
|
||||
"There should be an ImExporter in the tree for "
|
||||
+ "%s, but it is not.",
|
||||
Categorization.class.getName()
|
||||
)
|
||||
)
|
||||
);
|
||||
orderedNodes.remove(categorizationsNode);
|
||||
orderedNodes.add(categorizationsNode);
|
||||
|
||||
// Put the node for Permissions to the end of the list.
|
||||
final EntityImExporterTreeNode permissionsNode = orderedNodes
|
||||
.stream()
|
||||
.filter(node -> node.getEntityImExporter().getEntityClass().equals(Permission.class))
|
||||
.filter(
|
||||
node -> node.getEntityImExporter().getEntityClass().equals(
|
||||
Permission.class
|
||||
)
|
||||
)
|
||||
.findAny()
|
||||
.orElseThrow(
|
||||
() -> new UnexpectedErrorException(
|
||||
|
|
|
|||
|
|
@ -56,42 +56,42 @@ public class RoleMembershipImExporter
|
|||
@Override
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected void saveImportedEntity(final RoleMembership 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);
|
||||
// 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