use of org.summerb.easycrud.api.dto.relations.ManyToManyDto in project summerb by skarpushin.
the class EasyCrudM2mServiceImpl method findReferenceeByReferencers.
@Override
public Map<T1Id, List<T2Dto>> findReferenceeByReferencers(Set<T1Id> referencerIds) {
try {
Preconditions.checkArgument(!CollectionUtils.isEmpty(referencerIds), "referencerId is required");
Query q = buildQueryToFindReferenceeByReferencerId(referencerIds);
List<ManyToManyDto<T1Id, T2Id>> m2mPairs = query(PagerParams.ALL, q).getItems();
if (m2mPairs.size() == 0) {
// Q: Should we fill key set with null (or empty lists)??...
return Collections.emptyMap();
}
Set<T2Id> referenceeIds = collectReferenceeIds(m2mPairs);
List<T2Dto> referencee = serviceTo.query(PagerParams.ALL, buildQueryToFindObjectsByIds(referenceeIds)).getItems();
Map<T1Id, List<T2Dto>> ret = buildResultForFindReferenceeByReferencer(m2mPairs, referencee);
return ret;
} catch (Throwable t) {
throw new RuntimeException("Failed to find " + serviceTo.getEntityTypeMessageCode() + " refernced by " + serviceFrom.getEntityTypeMessageCode() + " identified by " + Arrays.toString(referencerIds.toArray()), t);
}
}
use of org.summerb.easycrud.api.dto.relations.ManyToManyDto in project summerb by skarpushin.
the class EasyCrudM2mServiceImpl method findReferenceeByReferencer.
@Override
public List<T2Dto> findReferenceeByReferencer(T1Id referencerId) {
try {
Preconditions.checkArgument(referencerId != null, "referencerId is required");
Query q = buildQueryToFindReferenceeByReferencerId(referencerId);
List<ManyToManyDto<T1Id, T2Id>> m2mPairs = query(PagerParams.ALL, q).getItems();
if (m2mPairs.size() == 0) {
return Collections.emptyList();
}
Set<T2Id> referenceeIds = collectReferenceeIds(m2mPairs);
return serviceTo.query(PagerParams.ALL, buildQueryToFindObjectsByIds(referenceeIds)).getItems();
} catch (Throwable t) {
throw new RuntimeException("Failed to find " + serviceTo.getEntityTypeMessageCode() + " refernced by " + serviceFrom.getEntityTypeMessageCode() + " identified by " + referencerId, t);
}
}
Aggregations