我有以下问题,当试图在数据库中插入一个对象时,Hibernate卡住了,没有返回错误,对象没有正确保存。
调试它我发现它挂起
Hibernate: select nextval('hibernate_sequence')
我使用PostgreSQL作为数据库。
我的配置文件:
<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部分有效。
我不确定我错过了什么。 同样使用本机SQL插入命令,它可以工作。
答案 0 :(得分:6)
我没有看到你冲洗你的会话
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();
}