Revision 58410
Added by Michele Artini almost 4 years ago
DatabaseUtils.java | ||
---|---|---|
108 | 108 |
orgView.getOtherNames().forEach(n -> otherNameRepository.save(new OtherName(orgId, n.getName(), n.getLang()))); |
109 | 109 |
orgView.getOtherIdentifiers().forEach(id -> otherIdentifierRepository.save(new OtherIdentifier(orgId, id.getId(), id.getType()))); |
110 | 110 |
orgView.getUrls().forEach(u -> urlRepository.save(new Url(orgId, u))); |
111 |
orgView.getRelations().forEach(r -> { |
|
112 |
final Relationship r1 = new Relationship(orgId, r.getRelatedOrgId(), r.getType()); |
|
113 |
final Relationship r2 = new Relationship(r.getRelatedOrgId(), orgId, RelationType.valueOf(r.getType()).getInverse().toString()); |
|
114 |
relationshipRepository.save(r1); |
|
115 |
relationshipRepository.save(r2); |
|
116 |
|
|
117 |
if (r.getType().equals(RelationType.Merged_In.toString()) || r.getType().equals(RelationType.Merges.toString())) { |
|
118 |
openaireConflictRepository.findById(new OpenaireConflictPK(orgId, r.getRelatedOrgId())).ifPresent(openaireConflictRepository::delete); |
|
119 |
openaireConflictRepository.findById(new OpenaireConflictPK(r.getRelatedOrgId(), orgId)).ifPresent(openaireConflictRepository::delete); |
|
120 |
} |
|
121 |
}); |
|
111 |
orgView.getRelations().forEach(r -> makeRelation(orgId, r.getRelatedOrgId(), RelationType.valueOf(r.getType()))); |
|
122 | 112 |
} |
123 | 113 |
|
124 | 114 |
private void cleanOldRelations(final String id) { |
... | ... | |
231 | 221 |
groups.get(gid).add(w.getId1()); |
232 | 222 |
groups.get(gid).add(w.getId2()); |
233 | 223 |
} |
224 |
|
|
225 |
@Transactional |
|
226 |
public List<Relationship> makeRelation(final String id1, final String id2, final RelationType type) { |
|
227 |
final Relationship r1 = new Relationship(id1, id2, type.toString()); |
|
228 |
final Relationship r2 = new Relationship(id2, id1, type.getInverse().toString()); |
|
229 |
relationshipRepository.save(r1); |
|
230 |
relationshipRepository.save(r2); |
|
231 |
|
|
232 |
if (type == RelationType.Merged_In || type == RelationType.Merges) { |
|
233 |
openaireConflictRepository.findById(new OpenaireConflictPK(id1, id2)).ifPresent(openaireConflictRepository::delete); |
|
234 |
openaireConflictRepository.findById(new OpenaireConflictPK(id2, id1)).ifPresent(openaireConflictRepository::delete); |
|
235 |
} |
|
236 |
|
|
237 |
return Arrays.asList(r1, r2); |
|
238 |
} |
|
234 | 239 |
} |
Also available in: Unified diff
save relations