spring service的事务配置问题

[color=blue]问题描述:
一个简单的功能(类似用户登录),我在service层写一个方法isXXExist(final XX xx),要求用户填写的信息不能和数据库中的已有信息重复(类似用户的ID)。可是在用户写了新的数据并提交后(注:一个已存在的数据),提示数据重复,返回到原来界面,但是数据被更新,出现了重复数据。
问题的解决:
打开log4j的数据项,查看tomocat的报错信息。页面返回前,系统自动做了一次update操作,将脏数据保存进数据库。
在applicationContext-service.xml文件中原配置如下:

<tx:advice id="txAdvice">
    <tx:attributes>
        <tx:method name="get*" read-only="true"/>
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>

加入<tx:method name="is*" read-only="true"/> 后,程序正常

请问:虽然我找到了原因,但是还是不太理解,请指点下,给我讲下详细的原因。
[/color]

applicationContext-service.xml里面配置的是spring2.0以上版本的声明事务管理。
你的程序应该是调用声明式事务。

就是将事务处理的级别设置为只读,也就是说仅能从读取,不能进行写的操作。

所以你的数据被提交之后,已经不会写入了 :D