Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate:自定义ID生成器需要持久化实体_Hibernate_Session_Id Generation - Fatal编程技术网

Hibernate:自定义ID生成器需要持久化实体

Hibernate:自定义ID生成器需要持久化实体,hibernate,session,id-generation,Hibernate,Session,Id Generation,我正在为Hibernate实现一个自定义Id生成器。在我的generate方法中,我需要从另一个表中读取数据并修改其中的数据。这就是我做这件事的方式: session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Criteria criteria = session.createCriteria(...)...; criteria.uniqueResult(); ...

我正在为Hibernate实现一个自定义Id生成器。在我的generate方法中,我需要从另一个表中读取数据并修改其中的数据。这就是我做这件事的方式:

session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(...)...;
criteria.uniqueResult();
...
session.save(...);
transaction.commit();
这很好,但我如何在我的发电机中使用它。generate方法获取的是一个
SessionImplementor
,而不是
会话
。如何使用它来持久化实体

public class MyGenerator implements IdentifierGenerator
{
    @Override
    public Serializable generate(final SessionImplementor session, final Object object) throws HibernateException
    {
        ???
    }
}

有什么想法吗?

结果很简单:

Session session = ( Session ) sessionImplementor;