Здравствуйте. Подскажие, пожалуйста, как лучше сделать архитектуру приложения.
Пишу веб-приложение, которое будет добавлять в базу и читать из нее информацию пользователей, а так же об их товаров.
Я описал все entities
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private int userId;
@Basic
@Column(name = "name")
private String name;
...
Сделал DAO слой
public class UserDAO extends {
public User getUserByNumber(String number) throws UserNotFoundException;
public User getUserByEMAil(String eMail) throws UserNotFoundException;
...
Слой сервисов.
public class UserService {
private UserDAO userDAO = new UserDAO();
public void createEntity(User user) throws CustomDAOException {
if (!isUserExists(user))
userDAO.create(user);
else System.out.println("User already exists");
}
...
Теперь я не знаю как поступить с созданием
EntityManagerFactory и
EntityManager Где их лучше разместить? Как сделать так, чтобы они закрывались, успешно завершив программу (где их лучше закрывать?) в многопоточном режиме?