Import Categorizations after all other objects
parent
aef849ece8
commit
5e3f467904
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.imexport;
|
package org.libreccm.imexport;
|
||||||
|
|
||||||
|
import org.libreccm.categorization.Categorization;
|
||||||
import org.libreccm.core.UnexpectedErrorException;
|
import org.libreccm.core.UnexpectedErrorException;
|
||||||
import org.libreccm.files.CcmFiles;
|
import org.libreccm.files.CcmFiles;
|
||||||
import org.libreccm.files.CcmFilesConfiguration;
|
import org.libreccm.files.CcmFilesConfiguration;
|
||||||
|
|
@ -230,10 +231,35 @@ public class ImportExport {
|
||||||
final List<EntityImExporterTreeNode> orderedNodes = treeManager
|
final List<EntityImExporterTreeNode> orderedNodes = treeManager
|
||||||
.orderImExporters(tree);
|
.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.
|
// Put the node for Permissions to the end of the list.
|
||||||
final EntityImExporterTreeNode permissionsNode = orderedNodes
|
final EntityImExporterTreeNode permissionsNode = orderedNodes
|
||||||
.stream()
|
.stream()
|
||||||
.filter(node -> node.getEntityImExporter().getEntityClass().equals(Permission.class))
|
.filter(
|
||||||
|
node -> node.getEntityImExporter().getEntityClass().equals(
|
||||||
|
Permission.class
|
||||||
|
)
|
||||||
|
)
|
||||||
.findAny()
|
.findAny()
|
||||||
.orElseThrow(
|
.orElseThrow(
|
||||||
() -> new UnexpectedErrorException(
|
() -> new UnexpectedErrorException(
|
||||||
|
|
|
||||||
|
|
@ -56,42 +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) {
|
||||||
final CriteriaBuilder criteriaBuilder = entityManager
|
// final CriteriaBuilder criteriaBuilder = entityManager
|
||||||
.getCriteriaBuilder();
|
// .getCriteriaBuilder();
|
||||||
final CriteriaQuery<RoleMembership> criteriaQuery = criteriaBuilder
|
// final CriteriaQuery<RoleMembership> criteriaQuery = criteriaBuilder
|
||||||
.createQuery(RoleMembership.class);
|
// .createQuery(RoleMembership.class);
|
||||||
final Root<RoleMembership> from = criteriaQuery.from(
|
// final Root<RoleMembership> from = criteriaQuery.from(
|
||||||
RoleMembership.class
|
// RoleMembership.class
|
||||||
);
|
// );
|
||||||
criteriaQuery.where(
|
// criteriaQuery.where(
|
||||||
criteriaBuilder.equal(
|
// criteriaBuilder.equal(
|
||||||
from.get("role"),
|
// from.get("role"),
|
||||||
entity.getRole()
|
// entity.getRole()
|
||||||
)
|
// )
|
||||||
);
|
// );
|
||||||
criteriaQuery.where(
|
// criteriaQuery.where(
|
||||||
criteriaBuilder.equal(
|
// criteriaBuilder.equal(
|
||||||
from.get("member"),
|
// from.get("member"),
|
||||||
entity.getMember()
|
// entity.getMember()
|
||||||
)
|
// )
|
||||||
);
|
// );
|
||||||
final TypedQuery<RoleMembership> query = entityManager.createQuery(
|
// final TypedQuery<RoleMembership> query = entityManager.createQuery(
|
||||||
criteriaQuery
|
// criteriaQuery
|
||||||
);
|
// );
|
||||||
final List<RoleMembership> results = query.getResultList();
|
// final List<RoleMembership> results = query.getResultList();
|
||||||
if (results.isEmpty()) {
|
// if (results.isEmpty()) {
|
||||||
final RoleMembership membership = new RoleMembership();
|
// final RoleMembership membership = new RoleMembership();
|
||||||
membership.setUuid(entity.getUuid());
|
// membership.setUuid(entity.getUuid());
|
||||||
membership.setMember(entity.getMember());
|
// membership.setMember(entity.getMember());
|
||||||
membership.setRole(entity.getRole());
|
// membership.setRole(entity.getRole());
|
||||||
entityManager.persist(membership);
|
// entityManager.persist(membership);
|
||||||
}
|
|
||||||
|
|
||||||
// if (entity.getMembershipId() == 0) {
|
|
||||||
// entityManager.persist(entity);
|
|
||||||
// } else {
|
|
||||||
// entityManager.merge(entity);
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
if (entity.getMembershipId() == 0) {
|
||||||
|
entityManager.persist(entity);
|
||||||
|
} else {
|
||||||
|
entityManager.merge(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue