一尘不染

休眠不将对象保存在数据库中?

hibernate

我有以下问题,当试图在数据库中插入对象时,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插入命令,它也可以工作。


阅读 222

收藏
2020-06-20

共1个答案

一尘不染

我没看到你这么忙

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();
    }
2020-06-20