Quelle est la meilleure façon d'avoir un CDI et JPA dans Java SE?

Je voudrais avoir dans Java SE

@Stateless
public class CarDAO {
    @Inject
    private EntityManager em;

    public Car findById(Long id) {
        return em.find(Car.class, id);
    }
}

@Singleton
public class Application {
    @Inject
    private CarDAO carDAO;

    public void run() {
        Car car = carDAO.findById(44);
        System.out.println(car);
    }
}

public class EntryPoint {
    public static void main(String[] args) {
        Application application = //missing code
        application.run();
    }
}

Ce que j'ai à faire pour y parvenir? Je suis l'aide de base de données postgres, et maven dans mon projet.

J'avais déjà lu quelque chose à propos de Soudure (mais ça ne regarde que comme des CDI). Je ne sais pas comment faire pour ajouter à Souder
possibilité d'injecter de l'Entité Gestionnaire. Je sais que je peux obtenir de l'Entité Gestionnaire de

EntityManagerFactory emf = Persistence.createEntityManagerFactory("mgr");
EntityManager em = emf.createEntityManager();

mais il n'est pas si commode que l'injection d'.

Ce serait formidable s'il n'y a aucun tutoriel à ce sujet. De toute façon, merci pour toute aide!

Ce Conteneur CDI utilisez-vous? Quelle version? Le modèle le plus courant est l'utilisation d'un producteur pour votre gestionnaire d'entité une fois votre EMF a été instancié.

OriginalL'auteur Dariusz Mydlarz | 2014-01-05