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 TResponseconvertToResponse(T entity) abstract TResponseprotected abstract org.springframework.data.jpa.domain.Specification<T>createSpecification(TRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现abstract voidvoiddeleteByOrgUid(String orgUid) abstract voiddeleteByUid(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 StringgetUidFromRequest(TRequest request) 从请求对象中获取UID的通用实现 使用反射调用getUid方法abstract ThandleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, T entity) abstract org.springframework.data.domain.Page<TResponse>queryByOrg(TRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法abstract TResponsequeryByUid(TRequest request) 通用的queryByUid实现abstract org.springframework.data.domain.Page<TResponse>queryByUser(TRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法重试恢复方法保存实体,带重试机制protected voidsetUserUidToRequest(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
-