0

我正在为 Hibernate 实现一个自定义 ID 生成器。在我的生成方法中,我需要从另一个表中读取并修改其上的数据。这就是(关于)我会这样做的方式:

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

这很好用,但我如何在我的生成器中使用它。generate-method 得到 a SessionImplementor,而不是 a Session。我怎样才能坚持一个实体呢?

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

有任何想法吗?

4

1 回答 1

0

结果很简单:

Session session = ( Session ) sessionImplementor;
于 2011-06-17T14:15:17.113 回答