在服务层,我们得到了
@Service
@Transactional(readOnly = false)
public abstract class GenericService
在存储库层,我们得到了
public abstract class GenericRepository
在服务中,我们有一个save方法,它调用存储库的save方法,即
@Override
public void savePersist(T entity) {
getSession().persist(entity);
}
我想要做的就是将对象“entity”保存到hibernate会话中以进行进一步处理,无需提交或任何插入语句到数据库中。 但实际发生的是在运行savePersist()之后保存“实体”。我认为这是因为在服务类上使用了@Transactional注释。但是我应该怎么做才能在会话中保存实体?
答案 0 :(得分:2)
如果您只是希望Spring不提交事务,那么您需要对事务进行角色转换。有几种方法:
@Transactional
注释的方法中) - 但这有点滥用角色机制readOnly
:@Transactional(readOnly = true)
但这只适用于整个会议!
另一种方法是将实体设为只读:https://docs.jboss.org/hibernate/orm/3.5/reference/de-DE/html/readonly.html#readonly-api