JPA 2 - à l'Aide de l'EntityManager dans JavaSE - un couple de questions

J'ai quelques questions concernant l'utilisation de l'entité gestionnaire dans un JavaSE environnement.

Je suis en utilisant le modèle de référentiel pour effectuer mes opérations CRUD sur la base de données. Il y aura une base de dépôt de la classe comme ceci:

public class Repository<T> implements IRepository<T> {

    private EntityManager em;
    private String persistenceUnitName;

    public Repository(String persistenceUnitName) {
        this.persistenceUnitName = persistenceUnitName;
    }

    @Override
    public T find(Class<T> type, Object id) {
        return em.find(type, id);
    }

    private EntityManager getEntityManager() {
        if (this.em == null) {
            EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName);

            em = emf.createEntityManager();
        }

        return em;
    }
    ...
    ...
}

Je vais avoir des cours comme EmployeeRepository, qui va hériter de Référentiel. Ces classes de dépôt sera créé dans ma couche de service.

Est-ce une bonne façon de l'initialisation de l'entité gestionnaire? Je commence à croire qu'il ne l'est pas - il semble que vous devez avoir un seul gestionnaire d'entité par unité de persistance? Où, comme dans ce cas, vous disposez d'un gestionnaire d'entités pour chaque dépôt que vous créez... Comment feriez-vous pour vous assurer avoir une seule entité gestionnaire par unité de persistance? J'ai également remarqué que le gestionnaire de l'entité et l'entité gestionnaire de l'usine méthodes de la méthode close - quand faut-il les appeler? Sur un serveur de mettre fin à l'événement?

Si vous connaissez des bonnes sources sur l'utilisation de JPA dans JavaSE j'aimerais avoir de l'info.

Merci!

OriginalL'auteur Brian DiCasa | 2010-11-01