Hibernate: генератор пользовательских идентификаторов должен сохранять сущность
Я реализую собственный генератор идентификаторов для Hibernate. В моем методе generate мне нужно прочитать другую таблицу и изменить данные в ней. Вот (примерно), как я бы это сделал:
session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(...)...;
criteria.uniqueResult();
...
session.save(...);
transaction.commit();
Это прекрасно работает, но как я могу использовать его в моем генераторе. Метод генерирования получает SessionImplementor
не Session
, Как я могу сохранить сущность с этим?
public class MyGenerator implements IdentifierGenerator
{
@Override
public Serializable generate(final SessionImplementor session, final Object object) throws HibernateException
{
???
}
}
Есть идеи?
1 ответ
Решение
Это оказалось довольно просто:
Session session = ( Session ) sessionImplementor;