休眠不将对象保存在数据库中? [英] Hibernate not saving Object in the Database?
本文介绍了休眠不将对象保存在数据库中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到以下问题,当试图在数据库中插入对象时,Hibernate卡住,没有返回错误,对象没有正确保存.
I have the following problem, when trying to insert an object in the database Hibernate gets stuck, no error returned, the object is not saved correctly.
调试它,我发现它挂在
Hibernate: select nextval('hibernate_sequence')
我正在使用PostgreSQL作为数据库.
I am using PostgreSQL as a database.
我的配置文件:
<hibernate-mapping>
<class name="src.MyClass" table="MyClass">
<cache usage="read-write"/>
<id name="id" column="classid">
<generator class="native" />
</id>
<property name="name" column="name" not-null="true" unique="true" length="160"/>
</class>
</hibernate-mapping>
@Override
public void save( Myclass mc)
{
Session session = sessionFactory.getCurrentSession();
session.save( mc);
}
SELECT部分起作用.
The SELECT part works.
我不确定我缺少什么. 同样使用本地SQL插入命令,它也可以工作.
I'm not sure what I'm missing. Also using native SQL Insert command, it works.
推荐答案
我没看到你在刷新会话
Session session = sessionFactory.openSession();
session.save(mc);
session.flush();
session.close();
但最可取的是
Session session = factory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(mc);
tx.commit(); // Flush happens automatically
}
catch (RuntimeException e) {
tx.rollback();
throw e; // or display error message
}
finally {
session.close();
}
这篇关于休眠不将对象保存在数据库中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文