K1 - 外键1类型(Foreign Key)K2 - 外键2类型(Foreign Key)B - 数据库记录对象类型(Java Bean)public abstract class BaseJunctionTableCache<K1,K2,B extends BaseBean<B>> extends java.lang.Object
LoadingCache实现MANY-TO-MANY 联接表(junction table)数据缓存,并可以通过TableListener实现缓存数据自动更新| 限定符和类型 | 类和说明 |
|---|---|
class |
BaseJunctionTableCache.Key |
| 限定符和类型 | 字段和说明 |
|---|---|
protected TableListener.Adapter<B> |
tableListener |
| 构造器和说明 |
|---|
BaseJunctionTableCache() |
BaseJunctionTableCache(ITableCache.UpdateStrategy updateStrategy,
long maximumSize,
long duration,
java.util.concurrent.TimeUnit unit)
构造函数
|
BaseJunctionTableCache(long maximumSize) |
BaseJunctionTableCache(long maximumSize,
long durationMinutes) |
BaseJunctionTableCache(long maximumSize,
long duration,
java.util.concurrent.TimeUnit unit) |
| 限定符和类型 | 方法和说明 |
|---|---|
B |
getBean(K1 k1,
K2 k2)
返回数据库中与
k1,k2(不可为null)匹配的记录如果没找到记录则抛出异常 |
B |
getBeanIfPresent(K1 k1,
K2 k2)
返回内存cache中与
k1,k2匹配的记录如果没找到记录则返回 null |
java.util.Set<B> |
getBeansByK1(K1 k1)
返回数据库中匹配
k1的所有记录,没有结果返回则抛出异常 |
java.util.Set<B> |
getBeansByK1IfPresent(K1 k1)
返回内存cache中匹配
k1的所有记录,没有结果返回则返回empty Set |
java.util.Set<B> |
getBeansByK1Unchecked(K1 k1)
返回数据库中匹配
k1的所有记录,没有结果返回则返回empty Set |
java.util.Set<B> |
getBeansByK2(K2 k2)
see also
getBeansByK1(Object) |
java.util.Set<B> |
getBeansByK2IfPresent(K2 k2)
see also
getBeansByK1IfPresent(Object) |
java.util.Set<B> |
getBeansByK2Unchecked(K2 k2)
see also
getBeansByK1Unchecked(Object) |
B |
getBeanUnchecked(K1 k1,
K2 k2)
返回数据库中与
k1,k2匹配的记录如果没找到记录则返回 null |
ITableCache.UpdateStrategy |
getUpdateStrategy() |
protected abstract java.lang.Object |
loadfromDatabase(BaseJunctionTableCache.Key key)
从数据库中加载外键指定的记录,没有找到指定的记录则抛出异常
ObjectRetrievalExceptionKey.k1,Key.k2都不为null返回B,否则返回Collection<B>不可返回 null |
abstract void |
registerListener()
注册侦听器
|
void |
remove(B bean)
从缓存中删除
bean指定的记录 |
protected abstract K1 |
returnK1(B bean)
返回
bean中外键K1值,bean为null时返回null |
protected abstract K2 |
returnK2(B bean)
返回
bean中外键K2值,bean为null时返回null |
abstract void |
unregisterListener()
注销侦听器
|
void |
update(B bean)
更新
bean到指定的缓存对象cacheMap |
protected final TableListener.Adapter<B extends BaseBean<B>> tableListener
public BaseJunctionTableCache()
public BaseJunctionTableCache(long maximumSize)
public BaseJunctionTableCache(long maximumSize, long durationMinutes)
public BaseJunctionTableCache(long maximumSize, long duration, java.util.concurrent.TimeUnit unit)
public BaseJunctionTableCache(ITableCache.UpdateStrategy updateStrategy, long maximumSize, long duration, java.util.concurrent.TimeUnit unit)
updateStrategy - 缓存更新策略maximumSize - 最大缓存容量,参见 CacheBuilder.maximumSize(long)duration - 失效时间,参见 CacheBuilder.expireAfterWrite(long, TimeUnit)unit - duration的时间单位protected abstract java.lang.Object loadfromDatabase(BaseJunctionTableCache.Key key) throws java.lang.Exception
ObjectRetrievalExceptionKey.k1,Key.k2都不为null返回B,否则返回Collection<B>nullkey - ObjectRetrievalExceptionjava.lang.Exceptionpublic abstract void registerListener()
public abstract void unregisterListener()
public java.util.Set<B> getBeansByK1(K1 k1) throws java.util.concurrent.ExecutionException
k1的所有记录,没有结果返回则抛出异常ObjectRetrievalException - not foundjava.util.concurrent.ExecutionExceptionLoadingCache.get(Object)public java.util.Set<B> getBeansByK1IfPresent(K1 k1)
k1的所有记录,没有结果返回则返回empty SetCache.getIfPresent(Object)public java.util.Set<B> getBeansByK1Unchecked(K1 k1)
k1的所有记录,没有结果返回则返回empty Setcom.google.common.util.concurrent.UncheckedExecutionExceptionLoadingCache.getUnchecked(Object)public java.util.Set<B> getBeansByK2(K2 k2) throws java.util.concurrent.ExecutionException
getBeansByK1(Object)java.util.concurrent.ExecutionExceptionpublic java.util.Set<B> getBeansByK2IfPresent(K2 k2)
getBeansByK1IfPresent(Object)public java.util.Set<B> getBeansByK2Unchecked(K2 k2)
getBeansByK1Unchecked(Object)public B getBean(K1 k1, K2 k2) throws java.util.concurrent.ExecutionException
k1,k2(不可为null)匹配的记录ObjectRetrievalException - not foundjava.util.concurrent.ExecutionExceptionLoadingCache.get(Object)public B getBeanIfPresent(K1 k1, K2 k2)
k1,k2匹配的记录nullCache.getIfPresent(Object)public B getBeanUnchecked(K1 k1, K2 k2)
k1,k2匹配的记录nullLoadingCache.getUnchecked(Object)public ITableCache.UpdateStrategy getUpdateStrategy()
Copyright © 2019. All Rights Reserved.