hibernate +springmvc +sqlserver 2008 能新增查询,不能修改删除

@Transactional
public void update(Users users){

// em.merge(users);

    String sql =" update Users set login_name =:login_name,password =:password,phone_number =:phone_number,is_alarm =:is_alarm"
            + ",email=:email,user_name =:user_name,remark=:remark where user_id =:user_id ";
    Query query = em.createNativeQuery(sql);
    query.setParameter("user_id", users.getUser_id());
    query.setParameter("user_name", users.getUser_name());
    query.setParameter("login_name", users.getLogin_name());
    query.setParameter("phone_number", users.getPhone_number());
    query.setParameter("is_alarm", users.getIs_alarm());
    query.setParameter("email", users.getEmail());
    query.setParameter("remark",users.getRemark());
    query.executeUpdate();
}



    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="auto"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.connection.autocommit" value="false"></property>
        <property name="hibernate.generate_statistics"  value="true"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.cache.use_query_cache" value="true"/>
        <property name="hibernate.cache.use_second_level_cache" value="true" /> 
        <property name="hibernate.cache.provider_class"
            value="org.hibernate.cache.HashtableCacheProvider" />
        <property name="jboss.entity.manager.factory.jndi.name" value="java:/algEntityManagerFactory"/> 
        <property name="hibernate.jdbc.fetch_size" value="25"/>
        <!-- <property name="hibernate.default_schema" value="hcqs"/>  -->
     </properties>

难道没有报错吗?你调试过没有?

没有报错的,调试过。merge不会打印 sql ,用sql的会打印的。但是结果没有执行到数据库。

先把sql粘到数据库执行一下,看是否成功执行,成功的话在你认为出错的地方打断点调试一下

吧sql的执行语句打印出来,在hibernate里面配置一下