Package io.micronaut.coherence.data
Class AbstractCoherenceAsyncRepository<T,ID>
- java.lang.Object
-
- com.oracle.coherence.repository.AbstractRepositoryBase<ID,T,com.tangosol.net.AsyncNamedMap<ID,T>>
-
- com.oracle.coherence.repository.AbstractAsyncRepository<ID,T>
-
- io.micronaut.coherence.data.AbstractCoherenceAsyncRepository<T,ID>
-
- Type Parameters:
ID
- the ID typeT
- the entity type
- All Implemented Interfaces:
io.micronaut.data.repository.GenericRepository<T,ID>
public abstract class AbstractCoherenceAsyncRepository<T,ID> extends com.oracle.coherence.repository.AbstractAsyncRepository<ID,T> implements io.micronaut.data.repository.GenericRepository<T,ID>
While it's possible to annotate a simpleAsyncCrudRepository
withCoherenceRepository
and use Coherence as a backend cache. However, to take full advantage of the feature set Coherence has to offer, it is recommended extending this class. This will give you all of the features as documented inAbstractAsyncRepository
. Any class extending this class must be declared abstract and cannot implement any of the Micronaut repository types due to overlap in methods between those interface methods and those provided byAbstractAsyncRepository
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.oracle.coherence.repository.AbstractRepositoryBase
com.oracle.coherence.repository.AbstractRepositoryBase.Listener<T extends java.lang.Object>, com.oracle.coherence.repository.AbstractRepositoryBase.MapListenerAdapter<ID extends java.lang.Object,T extends java.lang.Object>
-
-
Constructor Summary
Constructors Constructor Description AbstractCoherenceAsyncRepository()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class<? extends T>
getEntityType()
protected abstract java.lang.Class<? extends T>
getEntityTypeInternal(T entity)
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getEntityType()
and failing.protected ID
getId(T t)
protected abstract ID
getIdInternal(T entity)
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getId(Object)
and failing.protected com.tangosol.net.AsyncNamedMap<ID,T>
getMap()
protected abstract com.tangosol.net.AsyncNamedMap<ID,T>
getMapInternal()
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getMap()
and failing.java.util.concurrent.CompletableFuture<java.lang.Boolean>
remove(T entity)
java.util.concurrent.CompletableFuture<T>
save(T entity)
-
Methods inherited from class com.oracle.coherence.repository.AbstractAsyncRepository
average, average, average, average, average, average, average, average, count, count, distinct, distinct, exists, get, get, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAll, getAllOrderedBy, getAllOrderedBy, getAllOrderedBy, getAllOrderedBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, max, max, max, max, max, max, max, max, max, max, maxBy, maxBy, min, min, min, min, min, min, min, min, min, min, minBy, minBy, remove, removeAll, removeAll, removeAll, removeAll, removeAll, removeAll, removeAllById, removeAllById, removeById, removeById, saveAll, saveAll, sum, sum, sum, sum, sum, sum, sum, sum, top, top, top, top, topBy, topBy, topBy, topBy, update, update, update, update, update, update, updateAll, updateAll, updateAll
-
-
-
-
Method Detail
-
getEntityType
protected java.lang.Class<? extends T> getEntityType()
-
remove
public java.util.concurrent.CompletableFuture<java.lang.Boolean> remove(T entity)
-
getIdInternal
protected abstract ID getIdInternal(T entity)
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getId(Object)
and failing. Called only bygetId(Object)
.- Parameters:
entity
- the entity- Returns:
- the ID of the provided entity
-
getMapInternal
protected abstract com.tangosol.net.AsyncNamedMap<ID,T> getMapInternal()
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getMap()
and failing. Called only bygetId(Object)
.- Returns:
- the
AsyncNamedMap
for thisrepository
-
getEntityTypeInternal
protected abstract java.lang.Class<? extends T> getEntityTypeInternal(T entity)
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getEntityType()
and failing. Note: the value passed to this may always benull
. We don't care about the value as due to how the Coherence API is defined, there can never be a value. However, we can rely on compile type information generated by Micronaut for this intercepted method and use that metadata to return the entity type. Called only bygetEntityType()
.- Parameters:
entity
- the entity- Returns:
- the
Class
representing the entity type handled by thisrepository
.
-
-