Service基本功能封装

本文介绍了一个通用的实体管理类,该类提供了对实体进行增删改查等操作的方法,并且所有查询方法都设置为只读事务以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import com.iloosen.imall.commons.util.BusinessException;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.List;
@Transactional(readOnly = true)
public abstract class BaseEntityManager <E,PK extends Serializable>{
	
//	private Log log = LogFactory.getLog(getClass());

	protected abstract EntityDao<E,PK> getEntityDao();

	@Transactional(readOnly=true) 
	public E getById(PK id) throws BusinessException {
		return getEntityDao().getById(id);
	}
	
	@Transactional(readOnly=true)
	public List<E> findAll() throws BusinessException {
		return getEntityDao().findAll();
	}
	
	/** 根据id检查是否插入或是更新数据 */
	@Transactional
	public void saveOrUpdate(E entity) throws BusinessException {
		getEntityDao().saveOrUpdate(entity);
	}
	
	/** 插入数据 */
	@Transactional
	public void save(E entity) throws BusinessException {
		getEntityDao().save(entity);
	}
	
	@Transactional
	public void removeById(PK id) throws BusinessException {
		getEntityDao().deleteById(id);
	}
	
	@Transactional
	public void update(E entity) throws BusinessException {
		getEntityDao().update(entity);
	}
	
	@Transactional(readOnly=true)
	public boolean isUnique(E entity, String[] uniquePropertyNames) {
		return getEntityDao().isUnique(entity, uniquePropertyNames);
	}

	@Transactional
	public void flush() {
		getEntityDao().flush();
	}

	@Transactional(readOnly=true)
	public void refresh(BaseEntity entity) {
		getEntityDao().refresh(entity);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值