diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java index bea20e676..c84cf4656 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java @@ -91,6 +91,29 @@ public class ImdgTransactionalHazelcast implements Im } } + @Override + public T getFirstObjectBySQL(String paramString) { + SqlPredicate sqlPredicate = new SqlPredicate(paramString); + Set found = map.keySet(sqlPredicate); + Iterator allFoundByCondition = found.iterator(); + if (allFoundByCondition.hasNext()) { + return map.get(allFoundByCondition.next()); + } else return null; + } + + @Override + public T getSingleObjectBySQL(String paramString) { + SqlPredicate sqlPredicate = new SqlPredicate(paramString); + Set found = map.keySet(sqlPredicate); + if (found.size() > 1) { + throw new RuntimeException("More than one element found by predicate " + paramString + " - " + found.size()); + } + Iterator allFoundByCondition = found.iterator(); + if (allFoundByCondition.hasNext()) { + return map.get(allFoundByCondition.next()); + } else return null; + } + @Override public Collection getCollectionObjectsBySQL(String paramString) { SqlPredicate sqlPredicate = new SqlPredicate(paramString);