我正在我的 Spring Data JPA 存储库中进行更新本机查询。
@Query(nativeQuery=true, value="update t_table set change = 0 where id = ?1")
@Modifying(clearAutomatically=false)
void disableChange(int id);
正如我在数据库客户端中看到的那样,该值以正确的方式更新,但在重新部署服务器之前,下一个事务无法识别更改。
我的服务如下所示:
@Service("my.service.class.service")
public final class MyServiceClassImpl implements MyServiceClass
{
@Autowired
private ClientRepository clientRepository;
@Override
@Secured("MY_ROLE")
@Transactional(propagation=Propagation.REQUIRES_NEW, rollbackFor=MyException.class)
public void myMethod() throws PlayTheGuruException
{
//
myMethod();
//
}
private void myMethod() throws MyException {
//
clientRepository.disableChange(22);
//
}
}
我是否需要myMethod
使用事务性和强制传播或类似的东西进行注释?
本机查询是问题吗?
此问题仅在更新查询时出现。