Я пытаюсь использовать Hibernate EntityManager
в приложении GWT-P.
К сожалению, похоже, что я не могу использовать предложенный PersistFilter
public class MyModule extends ServletModule {
protected void configureServlets() {
install(new JpaPersistModule("myJpaUnit")); // like we saw earlier.
filter("/*").through(PersistFilter.class);
}
}
, это вызывает ClassCastException
:
org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider cannot be cast to org.hibernate.service.jdbc.connections.spi.ConnectionProvider
Так что я пробую другой подход (если у вас нет предложения для этого).
Я должен быть довольно близко, чтобы заставить работать первый сервис, ноВпрыснутый EntityManager
всегда null
public class ImageMetaDataService {
@Inject EntityManager em;
@Transactional
public void createNewImageMetaData(ImageMetaDataImpl imd) {
em.persist(imd);
}
}
Я подозреваю, что я сделал ошибку в настройке.Есть ли разница в использовании install(new JpaPersistModule("name"));
(в DispatchServletModule
) по сравнению с добавлением JpaPersistModule
следующим образом:
public class MyGuiceServletContextListener extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new ServerModule(), new DispatchServletModule(), new JpaPersistModule("name"));
}
}
И, наконец, мой самый важный вопрос: как бы я начал JPA.Документация предлагает такой класс:
public class MyInitializer {
@Inject MyInitializer(PersistService service) {
service.start();
// At this point JPA is started and ready.
}
}
Но я не понимаю, как это сделать (в GWT-P).