最近在做一个项目(spingMVC+jpa+mybatis+spring+mysql+...),期间遇到一些棘手的问题,这里贴上关键部分代码如下。
在执行修改的时候根据ID获取指定用户,拿到的实体的状态会不一样呢?
如果将DAO层的findById方法的事务注解 propagation = Propagation.NOT_SUPPORTED 去掉的话,修改时拿到的实体的状态就都是一样的,都是持久化状态的!
为什么呢??很是不解!希望高手们帮忙解惑下!!!
Service层部分代码如下:
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
DAO> dao;
/** 日志 */
private final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
@Override
@Transactional(readOnly = true)
public TUser getUserById(final String id) {
TUser user = this.dao.findById(id, TUser.class);
this.dao.contains(user);
return user;