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

时间:2011-06-17 12:30:47

标签: hibernate session id-generation

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

session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(...)...;
criteria.uniqueResult();
...
session.save(...);
transaction.commit();

工作正常,但我怎么能在我的发电机中使用它。 generate方法获得SessionImplementor,而不是Session。我怎样才能坚持一个实体呢?

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

结果很简单:

Session session = ( Session ) sessionImplementor;