@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里面配置一下