Skip to content

Commit 30a5ce4

Browse files
committed
#80 do not add collections of abstract entity types
1 parent cdc4070 commit 30a5ce4

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

src/main/java/com/arangodb/springframework/repository/query/StringBasedArangoQuery.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.expression.spel.support.StandardEvaluationContext;
3737
import org.springframework.util.Assert;
3838

39+
import java.lang.reflect.Modifier;
3940
import java.util.*;
4041
import java.util.regex.Matcher;
4142
import java.util.regex.Pattern;
@@ -98,12 +99,14 @@ public StringBasedArangoQuery(final String query, final ArangoQueryMethod method
9899

99100
extractBindVars(accessor, bindVars);
100101

101-
return Pair.of(prepareQuery(accessor), allCollectionNames(collectionName, bindVars));
102+
return Pair.of(prepareQuery(accessor), allCollectionNames(bindVars));
102103
}
103104

104-
private Collection<String> allCollectionNames(String collectionName, Map<String, Object> bindVars) {
105+
private Collection<String> allCollectionNames(Map<String, Object> bindVars) {
105106
HashSet<String> allCollections = new HashSet<>();
106-
allCollections.add(collectionName);
107+
if (!Modifier.isAbstract(domainClass.getModifiers())) {
108+
allCollections.add(collectionName);
109+
}
107110
bindVars.entrySet().stream()
108111
.filter(entry -> entry.getKey().startsWith("@"))
109112
.map(Map.Entry::getValue)

src/main/java/com/arangodb/springframework/transaction/ArangoTransaction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import com.arangodb.entity.StreamTransactionEntity;
55
import com.arangodb.entity.StreamTransactionStatus;
66
import com.arangodb.model.StreamTransactionOptions;
7+
import org.apache.commons.logging.Log;
8+
import org.apache.commons.logging.LogFactory;
79
import org.springframework.transaction.IllegalTransactionStateException;
810
import org.springframework.transaction.TransactionDefinition;
911
import org.springframework.transaction.interceptor.TransactionAttribute;
@@ -15,6 +17,7 @@
1517

1618
class ArangoTransaction implements SmartTransactionObject {
1719

20+
private final Log logger = LogFactory.getLog(getClass());
1821
private final ArangoDatabase database;
1922
private final Set<String> writeCollections = new HashSet<>();
2023
private TransactionDefinition definition;
@@ -50,6 +53,9 @@ String getOrBegin(Collection<String> collections) {
5053
.writeCollections(writeCollections.toArray(new String[0]))
5154
.lockTimeout(definition.getTimeout() == -1 ? 0 : definition.getTimeout());
5255
transaction = database.beginStreamTransaction(options);
56+
if (logger.isDebugEnabled()) {
57+
logger.debug("Began stream transaction " + transaction.getId() + " writing collections " + writeCollections);
58+
}
5359
return transaction.getId();
5460
}
5561

src/main/java/com/arangodb/springframework/transaction/ArangoTransactionManager.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,7 @@ protected void doBegin(Object transaction, TransactionDefinition definition) thr
4848
}
4949
ArangoTransaction tx = (ArangoTransaction) transaction;
5050
tx.configure(definition);
51-
Function<Collection<String>, String> begin = tx::getOrBegin;
52-
bridge.setCurrentTransaction(begin.andThen(id -> {
53-
if (logger.isDebugEnabled()) {
54-
logger.debug("Began stream transaction " + id);
55-
}
56-
return id;
57-
}));
51+
bridge.setCurrentTransaction(tx::getOrBegin);
5852
}
5953

6054
@Override

0 commit comments

Comments
 (0)