1
0

fix(database): 补充事务注解

This commit is contained in:
2026-01-21 22:11:14 +08:00
parent 3692657b64
commit 2adf4951f7
3 changed files with 18 additions and 0 deletions

View File

@@ -64,16 +64,19 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity & ProxyEn
}
}
@Transactional(readOnly = true)
@Override
public Long count() {
return entityQuery.queryable(target).count();
}
@Transactional(readOnly = true)
@Override
public List<ENTITY> list() {
return entityQuery.queryable(target).toList();
}
@Transactional(readOnly = true)
@Override
public List<ENTITY> list(Set<Long> ids) {
if (ObjectHelper.isEmpty(ids)) {
@@ -87,6 +90,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity & ProxyEn
protected void commonPredicates(PROXY proxy) {
}
@Transactional(readOnly = true)
@Override
public Page<ENTITY> list(Query query) {
var index = DEFAULT_PAGE_INDEX;
@@ -115,12 +119,14 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity & ProxyEn
}
@Named("detail")
@Transactional(readOnly = true)
@Override
public ENTITY detail(Long id) {
return detailOptional(id).orElse(null);
}
@Named("detailOrThrow")
@Transactional(readOnly = true)
@Override
public ENTITY detailOrThrow(Long id) {
return detailOptional(id).orElseThrow(() -> new IdNotFoundException(id));

View File

@@ -117,6 +117,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
*
* @return 返回符合条件的实体数量
*/
@Transactional(readOnly = true)
@Override
public Long count() {
return repository.count(this::commonPredicates);
@@ -130,6 +131,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
*
* @return 返回符合条件的实体列表
*/
@Transactional(readOnly = true)
@Override
public List<ENTITY> list() {
return repository.findAll(this::commonPredicates);
@@ -144,6 +146,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
* @param ids ID集合
* @return 返回ID集合对应的实体列表
*/
@Transactional(readOnly = true)
@Override
public List<ENTITY> list(Set<Long> ids) {
if (ObjectHelper.isEmpty(ids)) {
@@ -174,6 +177,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
* @param listQuery 查询条件对象
* @return 返回分页查询结果
*/
@Transactional(readOnly = true)
@Override
public Page<ENTITY> list(Query listQuery) {
var pageRequest = PageRequest.of(DEFAULT_PAGE_INDEX - 1, DEFAULT_PAGE_SIZE, Sort.by(SimpleEntity.Fields.createdTime).descending());
@@ -242,6 +246,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
* @return 返回实体详情不存在时返回null
*/
@Named("detail")
@Transactional(readOnly = true)
@Override
public ENTITY detail(Long id) {
return detailOptional(id).orElse(null);
@@ -258,6 +263,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
* @throws IdNotFoundException 当实体不存在时抛出
*/
@Named("detailOrThrow")
@Transactional(readOnly = true)
@Override
public ENTITY detailOrThrow(Long id) {
return detailOptional(id).orElseThrow(() -> new IdNotFoundException(id));

View File

@@ -47,16 +47,19 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
mapper.saveOrUpdate(entities);
}
@Transactional(readOnly = true)
@Override
public Long count() {
return (long) mapper.countAll(target);
}
@Transactional(readOnly = true)
@Override
public List<ENTITY> list() {
return mapper.listAll(target);
}
@Transactional(readOnly = true)
@Override
public List<ENTITY> list(Set<Long> ids) {
return mapper.listByIds(target, ids);
@@ -65,6 +68,7 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
protected void commonPredicates(Where where) {
}
@Transactional(readOnly = true)
@Override
public Page<ENTITY> list(Query query) {
var chain = QueryChain.of(mapper, target);
@@ -98,12 +102,14 @@ public abstract class SimpleServiceSupport<ENTITY extends SimpleEntity> implemen
}
@Named("detail")
@Transactional(readOnly = true)
@Override
public ENTITY detail(Long id) {
return detailOptional(id).orElse(null);
}
@Named("detailOrThrow")
@Transactional(readOnly = true)
@Override
public ENTITY detailOrThrow(Long id) {
return detailOptional(id).orElseThrow(() -> new IdNotFoundException(id));