Package io.micronaut.coherence.data
Class AbstractCoherenceRepository<T,ID>
- java.lang.Object
-
- com.oracle.coherence.repository.AbstractRepositoryBase<ID,T,com.tangosol.net.NamedMap<ID,T>>
-
- com.oracle.coherence.repository.AbstractRepository<ID,T>
-
- io.micronaut.coherence.data.AbstractCoherenceRepository<T,ID>
-
- Type Parameters:
ID
- the ID typeT
- the entity type
- All Implemented Interfaces:
io.micronaut.data.repository.GenericRepository<T,ID>
public abstract class AbstractCoherenceRepository<T,ID> extends com.oracle.coherence.repository.AbstractRepository<ID,T> implements io.micronaut.data.repository.GenericRepository<T,ID>
While it's possible to annotate a simpleCrudRepository
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 inAbstractRepository
. 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 byAbstractRepository
.
-
-
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 AbstractCoherenceRepository()
-
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 entity)
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.NamedMap<ID,T>
getMap()
protected abstract com.tangosol.net.NamedMap<ID,T>
getMapInternal()
This is in place to prevent Micronaut from scanning further up the inheritance tree and trying to mapAbstractRepositoryBase.getMap()
and failing.boolean
remove(T entity)
T
save(T entity)
-
Methods inherited from class com.oracle.coherence.repository.AbstractRepository
average, average, average, average, average, average, average, average, count, count, distinct, distinct, exists, get, get, 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, stream, stream, stream, 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 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.NamedMap<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
NamedMap
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
.
-
-