Package com.bytedesk.core.base
Class BaseRestServiceOverride<T,TRequest extends PageableRequest,TResponse>
java.lang.Object
com.bytedesk.core.base.BaseRestServiceOverride<T,TRequest,TResponse>
public abstract class BaseRestServiceOverride<T,TRequest extends PageableRequest,TResponse>
extends Object
需要自己重新实现的抽象方法
改进的基础RestService类
在原有抽象方法基础上,提供通用的默认实现来减少重复代码
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract TResponse
convertToResponse
(T entity) abstract TResponse
protected abstract org.springframework.data.jpa.domain.Specification<T>
createSpecification
(TRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现abstract void
void
deleteByOrgUid
(String orgUid) abstract void
deleteByUid
(String uid) protected abstract T
子类实现具体的保存逻辑protected abstract org.springframework.data.domain.Page<T>
executePageQuery
(org.springframework.data.jpa.domain.Specification<T> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现findByOrgUid
(String orgUid) protected String
getUidFromRequest
(TRequest request) 从请求对象中获取UID的通用实现 使用反射调用getUid方法abstract T
handleOptimisticLockingFailureException
(org.springframework.orm.ObjectOptimisticLockingFailureException e, T entity) abstract org.springframework.data.domain.Page<TResponse>
queryByOrg
(TRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法abstract TResponse
queryByUid
(TRequest request) 通用的queryByUid实现abstract org.springframework.data.domain.Page<TResponse>
queryByUser
(TRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法重试恢复方法保存实体,带重试机制protected void
setUserUidToRequest
(TRequest request, String userUid) 设置用户UID到请求对象的通用实现 使用反射调用setUserUid方法abstract TResponse
-
Field Details
-
authService
-
-
Constructor Details
-
BaseRestServiceOverride
public BaseRestServiceOverride()
-
-
Method Details
-
findByUid
-
create
-
update
-
deleteByUid
-
delete
-
handleOptimisticLockingFailureException
-
convertToResponse
-
createSpecification
protected abstract org.springframework.data.jpa.domain.Specification<T> createSpecification(TRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现 -
executePageQuery
protected abstract org.springframework.data.domain.Page<T> executePageQuery(org.springframework.data.jpa.domain.Specification<T> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现 -
queryByOrg
通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法 -
queryByUser
通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法 -
queryByUid
通用的queryByUid实现 -
getUidFromRequest
从请求对象中获取UID的通用实现 使用反射调用getUid方法 -
setUserUidToRequest
设置用户UID到请求对象的通用实现 使用反射调用setUserUid方法 -
findByOrgUid
-
save
@Retryable(value=org.springframework.orm.ObjectOptimisticLockingFailureException.class, maxAttempts=3, backoff=@Backoff(delay=100L,multiplier=2.0)) public T save(T entity) 保存实体,带重试机制 -
doSave
子类实现具体的保存逻辑 -
recover
@Recover public T recover(org.springframework.orm.ObjectOptimisticLockingFailureException e, T entity) 重试恢复方法 -
deleteByOrgUid
-