hibernate没调用SAVE方法也保存了,怎么回事? 5
请教一下:我用的是SSH开发Listlist=encourageApplyService.findAllPage(hql,pages);for(Iteratoritera...
请教一下: 我用的是SSH开发
List list = encourageApplyService.findAllPage(hql, pages);
for (Iterator iterator = list.iterator(); iterator.hasNext();)
encourageApply.setOperState("顺风耳");//假如这个值原来是'1'
把这个list到页面上显示,最后HIBERNATE把我上面设进去的值保存到数据库里了,这是怎么回事啊. 我并没调用SAVE方法啊.(即数据库里OperState这个的值变成了'顺风耳')....求教高手啊>>! 展开
List list = encourageApplyService.findAllPage(hql, pages);
for (Iterator iterator = list.iterator(); iterator.hasNext();)
encourageApply.setOperState("顺风耳");//假如这个值原来是'1'
把这个list到页面上显示,最后HIBERNATE把我上面设进去的值保存到数据库里了,这是怎么回事啊. 我并没调用SAVE方法啊.(即数据库里OperState这个的值变成了'顺风耳')....求教高手啊>>! 展开
4个回答
展开全部
hibernate 当 数据库事务结束时 ,会 自动 更新 你 修改 过 的po值 ,你可以看看hibernate中po的三种状态,瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)的意义,
看来是刚用hibernate!你还有很多东西需要了解
祝你好运朋友!
看来是刚用hibernate!你还有很多东西需要了解
祝你好运朋友!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你用了setXXX();方法...
如果这个方法是在事务也就是和你取出这个值的同一个session中时,就会自动保存...
建议查看一下session是否关闭..
如果这个方法是在事务也就是和你取出这个值的同一个session中时,就会自动保存...
建议查看一下session是否关闭..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的状态是持久状态,所以即使no save也会被commit
不懂就去了解 瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
不懂就去了解 瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知,采用实体进行插入数据,这样做还要用hibernate干嘛???
郁闷。。。
package com.bjsxt.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Client {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory
SessionFactory factory = cfg.buildSessionFactory();
Session session = null;
try {
session = factory.openSession();
//开启事务
session.beginTransaction();
User user = new User();
user.setName("张三");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//保存数据
session.save(user);
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
if (session != null) {
if (session.isOpen()) {
//关闭session
session.close();
}
}
}
}
}
郁闷。。。
package com.bjsxt.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Client {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory
SessionFactory factory = cfg.buildSessionFactory();
Session session = null;
try {
session = factory.openSession();
//开启事务
session.beginTransaction();
User user = new User();
user.setName("张三");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//保存数据
session.save(user);
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
if (session != null) {
if (session.isOpen()) {
//关闭session
session.close();
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询