Я разрабатываю настольное приложение для моно пользователей, используя SWING.У меня был небольшой опыт работы с такого рода приложениями, в которых я использовал API Java.QL и понял, что это совсем не удобно ...
В своем новом приложении я впервые пытаюсь использовать JPA, я прочитал много уроков, которые помогли мне понять почти все, что мне нужно, но не нашел хорошего примера для реальногонастольные приложения java.
Я думаю об использовании следующей архитектуры, но не знаю, прав ли я ...
Я думаю о создании класса MyPersistenceUnit:
public class MyPersistenceUnit {
private static EntityManagerFactory factory;
private static EntityManager entityManager;
public static void initiate(){
factory=Persistence.createEntityManagerFactory("PU_Name");
entityManager=factory.createEntityManager();
}
public static EntityManager getEntityManager() {
return entityManager;
}
public static void close(){
entityManager.close();
factory.close();
}
}
метод initiate () будет вызван первым, а метод close () будет вызван при закрытии приложения.
Во время работы приложения все транзакции будут выполняться через экземпляр getEntityManager (), который доступен в любом месте приложения.Если я правильно понимаю приложения JSE, полученный диспетчер сущностей имеет расширенный контекст персистентности, который будет держать все сущности в управляемом состоянии, пока диспетчер сущностей не закрывается, и это заставило меня так думать ...
Я не знаю, пропустил ли я что-то, поэтому любой совет будет оценен
Обратите внимание, что я использую поставщика eclipselink со встроенной базой данных derby.Спасибо