class StorageJetCache extends SimpleJpaRepository<E,PK> implements IStorage<PK,E> {

    @Override
    @Transactional(rollbackFor = Exception.class)
    public E create(E entity) {
        Preconditions.checkNotNull(entity,"entity不能为null");
        CacheGetResult<E> cacheGetResult = cache.GET(entity.getId());
        if (cacheGetResult.isSuccess()){
            E entityFromCache = cacheGetResult.getValue();
            // 缓存中缓存了其null值，说明数据库中没有，直接存库
            if (entityFromCache == null) {
                return doInsert(entity);
            }
            // 缓存中有，说明数据库中也有，那么不应该创建，抛出异常
            else {
                throw new EntityExistsException("数据库中已存在该实体，考虑使用update?");
            }
        }
        // 缓存中没有成功获取就查数据库
        else {
            if (exists(entity.getId())){
                throw new EntityExistsException("数据库中已存在该实体，考虑使用update?");
            }else {
                return doInsert(entity);
            }
        }
    }

    public  StorageJetCache(JpaEntityInformation<E, ?> entityInformation, EntityManager entityManager);

}