[英]How to exclude a method to be @Transactional?
在服务层,我们得到了
@Service
@Transactional(readOnly = false)
public abstract class GenericService
在存储库层,我们得到了
public abstract class GenericRepository
在服务中,我们有一个save方法调用存储库的save方法,即
@Override
public void savePersist(T entity) {
getSession().persist(entity);
}
我要做的就是将对象“实体”保存到休眠会话中以进行进一步处理,而无需在数据库中提交或插入任何插入语句。 但是实际上发生的是在运行savePersist()之后保存“实体”。 我认为这是因为在服务类上使用了@Transactional注释。 但是,我应该怎么做才能在会话中保存实体?
当您只希望Spring不提交事务时,则需要对事务进行角色分配。 有几种方法:
@Transactional
批注的Method中)-但这有点滥用角色扮演机制 readOnly
: @Transactional(readOnly = true)
但这两者仅适用于整个会话!
另一种方法是使实体只读: https : //docs.jboss.org/hibernate/orm/3.5/reference/de-DE/html/readonly.html#readonly-api
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.