hql语句执行update操作,数据库里的东西竟然没改掉?if(bloger.getEmail()!=null){
hql+="update Users u set u.email='"+bloger.getEmail().trim()+"'";
}
if(bloger.getQq()!=null){
hql+=",u.qq='"+bloger.getQq()+"'";
}
if(bloger.getAddress()!=null){
hql+=",u.address='"+bloger.getAddress()+"'";
}
hql+="where u.id="+bloger.getId();
Query query=sessionFactory.openSession().createQuery(hql);
int num=query.executeUpdate();
if(num<0){
System.out.println("not excute update");
}
控制台没有报错,也显示 执行了update语句:
Hibernate: update webblog.dbo.users set email='[email protected]', qq='793492939', address='广东'
但就是数据库里的东西没改掉,请好心人帮忙看下,谢谢
hql+="update Users u set u.email='"+bloger.getEmail().trim()+"'";
}
if(bloger.getQq()!=null){
hql+=",u.qq='"+bloger.getQq()+"'";
}
if(bloger.getAddress()!=null){
hql+=",u.address='"+bloger.getAddress()+"'";
}
hql+="where u.id="+bloger.getId();
Query query=sessionFactory.openSession().createQuery(hql);
int num=query.executeUpdate();
if(num<0){
System.out.println("not excute update");
}
控制台没有报错,也显示 执行了update语句:
Hibernate: update webblog.dbo.users set email='[email protected]', qq='793492939', address='广东'
但就是数据库里的东西没改掉,请好心人帮忙看下,谢谢
或许
<tx:method name="update*" propagation="REQUIRED" />
看看你那个方法名。
这个是交给SPRING么?
修改Users?应该是entity实体内吧 不过 这样 他怎么知道是其中的哪条?
我没有这样用过update 不过 我觉得 是不是 要给条件
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
你没看下面还有一个where条件吗
还是建议你不要写hql语句,我们那样写会挨骂得。只有查询才写hql语句。
要么用spring 管理事务来提交 不然不会修改数据库的 你执行HQL后改的只是缓存里的数据而已