моего использование спящего режима выглядит следующим образом:с помощью Guice trancactional атрибута для спящего режима без JPA
это, как я настроить SessionFactory
Configuration configuration = new Configuration()
.addResource(MAPPING_RESSOURCE)// -> hibernate.hbm.xml
.configure(CONFIG_RESSOURCE)// -> hibernate.cfg.xml;
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
factory = configuration.buildSessionFactory(serviceRegistry);
SessionFactory настроен на использование ThreadLocalSessionContext (строки из hibernate.cfg .xml):
<property name="current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>
я получить текущий сеанс из этого базового метода дао:
protected Session getSession(){return factory.getCurrentSession();}
и я получил некоторые методы CRUD операций в абстрактном дао BaseClass, как этот для «получить»:
public T get(int key) throws HibernateException
{
Transaction transaction = null;
try
{
Session session = getSession();
transaction = session.beginTransaction();
T t = (T)session.get(classOfT, key);
transaction.commit();
return t;
}
catch(HibernateException e)
{
if(transaction != null)
transaction.rollback();
throw e;
}
}
теперь вот вопрос. Я хотел бы использовать атрибут транзакционной Guice, чтобы сократить код, как это:
@Transactional
public T get(int key) throws HibernateException
{
T t = (T)session.get(classOfT, key);
}
однако, все учебники, которые я видел, показывают, что поддержка Guice инерционность специально для JPA, что EntityManager, persistence.xml и так вперед. Есть ли возможность сохранить приведенную выше настройку и использовать @Transactional?
благодаря
этот ответ звучит глубоко, спасибо. Кажется, что warp-persist является тем, что я искал. однако несколько странно, что они не предоставляют репозиторий maven и что последнее совершение было несколько лет назад. но, по крайней мере, есть банка: https://code.google.com/p/warp-persist/source/browse/trunk/warp-persist/#warp-persist%2Fdist –
Добро пожаловать. Я рекомендую не использовать опубликованную банку. По сравнению с последним фиксатором, опубликованные банки устарели! Есть исправления и улучшения за пределами последней опубликованной банки. Imho, это хорошая идея, чтобы построить его самостоятельно и посмотреть на некоторые из кода. Вам нужно сделать только _ant clean dist_ после проверки svn. –