休眠不将对象保存在数据库中? [英] Hibernate not saving Object in the Database?

查看:72
本文介绍了休眠不将对象保存在数据库中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到以下问题,当试图在数据库中插入对象时,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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆