开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>

今天碰到一个比较饶的问题,我在service里面定义了一个update方法,修改表中的数据,和另外一个find方法查询该数据库的数据,
然后在action中先一个方法,方法中先引用update,在引用find方法,离奇的事情发生了,数据库的数据改变了,但是查询到的数据居然是
修改前的。。。
下面是我的代码
update方法
public void updatePRelationFlag(String orderNo, String flag){
StringBuffer sql = new StringBuffer();
sql.append("update prelation r set r.flag='").append(flag).append("' where r.orderno='").append(orderNo).append("'");
int i = super.getSession().createSQLQuery(sql.toString()).executeUpdate();
}
find方法
public PRelation findpPRelation(String payNo){
StringBuffer sql = new StringBuffer();
sql.append("select * from prelation r where payno = :payNo");
List<PRelation> policys = super.getSession().createSQLQuery(sql.toString()).addEntity(PRelation.class).setString("payNo", payNo).list();
return policys.get(0);
}
action中调用顺序:
public String actionMe(){
oService.updatePolicyRelationFlag("02010101","02");
oService.findProPolicyRelation("0200201002");
}
当我只查询表中的一个字段时,查询到的数据是修改后的
update方法
public void updatePRelationFlag(String orderNo, String flag){
StringBuffer sql = new StringBuffer();
sql.append("update prelation r set r.flag='").append(flag).append("' where r.orderno='").append(orderNo).append("'");
int i = super.getSession().createSQLQuery(sql.toString()).executeUpdate();
}
find方法
public String findFlag(String payNo){
StringBuffer sql = new StringBuffer();
sql.append("select r.flag from prelation r where payno = :payNo");
List<Object> flagOs = super.getSession().createSQLQuery(sql.toString()).setString("payNo", payNo).list();
return flagOs.get(0).toString();
}
action中调用顺序:
public String actionMe(){
oService.updatePolicyRelationFlag("02010101","02");
oService.findFlag("0200201002");
}
是因为修改时用的sql语句,而查询用的对象查询吗?哪位高手可以帮助解释一下,非常感谢!!!