2011-06-17 92 views
0

我正在實現Hibernate的自定義Id生成器。在我的生成方法中,我需要從另一個表中讀取數據並修改它。這是(大約)我會這樣做的方式:休眠:自定義ID生成器需要堅持實體

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 
    { 
     ??? 
    } 
} 

任何想法?

回答

0

原來是相當簡單:

Session session = (Session) sessionImplementor;