用hibernate的hql语句怎样对数据库中的数据进行更新

u010756456 2013-06-24 02:10:30
用hibernate的hql语句怎样对数据库中的数据进行某些属性的更新
我这样写一直报错update Users as u set u.address=?,u.phone=?,u.email=?,u.postcode=? where u.userid=?
报错信息为
org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations [update com.dyf.domain.Users as u set u.address=?,u.phone=?,u.email=?,u.postcode=? where u.userid=?]
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010756456 2013-06-24
  • 打赏
  • 举报
回复
恩,自己刚才意识到了。。解决了。非常感谢。
  • 打赏
  • 举报
回复
session.createSQLQuery(hql).executeUpdate(); 你应该没有红色的东西
一.使用Hibernate的Session对象操作数据 1.初始化Hibernate:在要使用Hibernate的类的方法实例化Configuration对象并用Configuration对象的configure()方法将hibernate.cfg.xml的配置加载到内存,即: Configuration config = new Configuration().configure(); //该方法将到classpath下解析hibernate.cfg.xml的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:SessionFactory sf = Configuration对象.buildSessionFactory();Session session = SessionFactory对象.openSession(); 注:由于SessionFactory是重量级对象,很耗资源,所以在获取SessionFactory对象时最好用单例模式获取,以确保一个应用只有一个SessionFactory对象存在和线程安全,由于Session对象 是非线程安全的(尽管创建一个Session对象消耗的资源很小),所以在获取Session对象时候也最好用单例模式获取 3.提交并清空Session缓存的数据后开始一个事务 Session对象.flush(); //将Session的缓存内容提交到数据 Session对象.clear(); //清空Session的所有缓存(彻底清除会话) Session对象.beginTransaction().begin(); //开始一个事务 4.用Session对象的以下方法操作数据 (1).save(Object obj); (2).saveOrUpdate(Object obj); (3).delete(Object obj); //只要删除的对象设置了主键的值就可以删除而无需先获取 (4).update(Object obj); //只要更新的对象设置了主键的值就可以更新而无需先获取 (5).get(Class classes,Serializable pk); //该方法会立即加载/获取数据(只要调用该方法就会立即向数据发出查询语句),该方法只在内部缓存查找数据,如果内部缓存没有数据就直接去数据查询,当数据没有要查询的数据时返回null (6).load(Class classes,Serializable pk); //该方法会延迟加载/获取数据(只有使用该对象的字段时才会向数据发出查询语句),该方法会在内部和二级缓存查找数据,当数据没有要查询的数据时报ObjectNotFoundException异常 (7).createQuery(String HQL).list()/iterate()/uniqueResult(); //HQL(Hibernate Query Language)语句查询

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧