异常:InvalidDataAccessApiUsageException:Write operations are not allowed in read-only mode

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

这几天,碰到个错误.在网上查询,大多是改动配置文件,而公司的项目,配置文件是不能随便修改,况且,我这个保存功能原本是好使的,在我不知道改了什么的情况下报错了,原本以为是修改的数据配置文件有问题,但是核对了几遍都没问题,最后找很牛的同事看看,他恍然大悟,唉,原来这样。。

下面是导致这个异常的我的原因:
虽然目前还是不太清楚整个流程,但是如果在交给spring 管理的情况下,有一个事务处理配置文件,xxx.xml,如下:

红色圈上的地方定义了,你方法名的限制。如果你以这些名字,如load,find,get,list,fetch开头命名你的方法的话,那么你这个方法的数据操作被定义为readonly的,在这些方法里做数据库的删除,添加,修改操作是不被允许的,会报出这个异常。
于是,我改了我的方法名,之前好使是因为我之前并不是以get开头的,因为修改一些东西,将方法名改成了get开头的方法名,好吧,报错不要紧,又知道了点东西,
修改方法名字之后,方法的添加功能就不再报错,成功的添加进数据了。
所以我们需要做的只是修改我们的方法名即可,并不一定要去修改配置文件,修改配置文件,尤其是已经成型的工程,可能会引发其他一系列我们尚不明了的问题。
所以当有问题出现的时候,我们首先要做的是从我们的代码中找问题,并修改。

你可能感兴趣的:(问题处理)