Hibernate打出执行语句,怎么还是没有插入数据呢,也没有异常,这怎么解释呢?

[code="java"]public static void main(String[] agrs) {

Session session = null;
try{
session = HibernateSessionFactory.getSession();
News news = new News();
news.setAddtime(new Date());
news.setNewscontent("aaa");
news.setTitle("bbb");
session.save(news);
} catch(Exception e) {
e.printStackTrace();
} finally{
session.close();
}
}
[/code]

Hibernate: insert into bookstore.news (title, newscontent, addtime) values (?, ?, ?)
这是控制台打印出来的语句,Hibernate自动打印出来的
所以执行了,操作,但是如果操作失败了,也会打印出异常信息,但是没有任何异常信息。也没有插入数据成功。

有没有commit?

插入事务使用transaction类来保证事务性

[code="java"]public static void main(String[] agrs) {

Session session = null;

try{

session = HibernateSessionFactory.getSession();

News news = new News();

news.setAddtime(new Date());

news.setNewscontent("aaa");

news.setTitle("bbb");

Transaction t = session.beginTransaction();
session.save(news);

t.commit();

} catch(Exception e) {

e.printStackTrace();

} finally{

session.close();

}

} [/code]

[quote]但是如果不需要事务该怎么设置呢?[/quote]

可以使用在session.save()后面使用session.flush()试试

为什么不用commit?很奇怪。。。

或者你可以在spring里配置hibernate 这样hibernate的事务就交给sping管理了