关于hibernate的createSQLQuery会修改数据库数据的问题 hibernatecreateSQLQuery 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以配置一下hibernate的 打出sql 日志,看看 打出的sql 事务的原因, 事务方法接收后session会自动flush, 会检测query出来的对象是否有修改,修改了便会更新到数据库. 事务方法结束后如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢? 事务方法结束后如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢?hibernate session的evict方法把query出来的对象在当前session中清除,就不会写到数据库了 这是hibernate对象中的三种状态. java中对象时引用类型,你查询出来此时状态是游离状态, 修改了之后,在事物提交后hibenrate就给你修改了. 又变成持久状态了 你新 new 的 是瞬时状态, 只有在调用save 后 再能变成 游离状态, 在事物提交的时候变成 持久状态 关于这种情况, 可以自己使用 bytearrayoutputsteam objectoutputstream bytearrayinputstream objectinputstream 这几个流进行序列化和反序列化,达到对象的克隆! 这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉 这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物 事物的问题、Session session= HibernateSessionFactory.getSession();获取session、不com就不会出现提交修改问题、LZ你要是真的纠结这个问题、先把spring中的SessionFactory的自动注入停下来、通过手动获取SessionFactory、就不会出现spring中事务和SessionFactory自动提交的效果了 这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了? 这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了?用spring没有??? 百度下 多的很 不com是什么意思?提交下面举一个查询的例子、修改跟他一样、不提交怎么可能public List<Tbl2ShopTrade> findJy() { // TODO Auto-generated method stub List list =new ArrayList(); Session session= HibernateSessionFactory.getSession(); try { SessionFactory sf = HibernateSessionFactory.getSessionFactory(); String Hql = "from 表名"; Query query = session.createQuery(Hql); list = query.list(); session.beginTransaction().commit();//我就是提交、不打我是修改不了数据库的 } catch (Exception e) { session.beginTransaction().rollback(); }finally{ HibernateSessionFactory.closeSession(); } return list; }你不提交也就是这段session.beginTransaction().commit();代码、不打的话绝对不会出现修改数据库的情况 上面那个SessionFactory是自己获取的、你要是用的SSH框架、Spring会自动注入SessionFactory和事务、所以会出现自动提交的问题、你把spring中的SessionFactory关了、自己获取 检查下你的spring里面的配置。如果没有执行其它的添加或者修改。只能是你配置的问题。或者你可以调试下。打印出你的sql语句。这些都是小问题。和是否重新实例化无关。 Dao注入不了 异常继承问题 求Struts项目的数据库操作的共通类和异常处理的共通类 java如何调用.net编写的wcf服务? Hibernate用户自定义值类型怎么用 ajax提交表单怎样,防止重复提交等等问题? 问题:hibernate+mysql innodb 数据没有保存到数据库中!!!! TOMCAT 如何在什么地方配置SESSION 失效时间? 一个很简单的问题?急! spring mvc 一个<url-pattern>的配置问题 JSP:tomcat jdbc+spring+hibernate 连接sql server Java在编译时做了哪些事情
如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢?
如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢?hibernate session的evict方法把query出来的对象在当前session中清除,就不会写到数据库了
你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物
你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物
我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了?
你开启事物没有? 查询其实不用开启事物,或者就是开启只读事物
我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了?
用spring没有??? 百度下 多的很
提交
下面举一个查询的例子、修改跟他一样、不提交怎么可能
public List<Tbl2ShopTrade> findJy() {
// TODO Auto-generated method stub
List list =new ArrayList();
Session session= HibernateSessionFactory.getSession();
try {
SessionFactory sf = HibernateSessionFactory.getSessionFactory();
String Hql = "from 表名";
Query query = session.createQuery(Hql);
list = query.list();
session.beginTransaction().commit();//我就是提交、不打我是修改不了数据库的
} catch (Exception e) {
session.beginTransaction().rollback();
}finally{
HibernateSessionFactory.closeSession();
}
return list;
}
你不提交
也就是这段session.beginTransaction().commit();代码、不打的话绝对不会出现修改数据库的情况