L'une des choses les plus difficiles à comprendre à propos de Spring est que Spring prend en charge plusieurs approches pour le même problème.Spring DaoSupport et @PersistanceContext EntityManager?
donc dans ma demande que j'utilise injecté EntityManager en utilisant l'annotation @PersistanceContext, par exemple:
@Repository
public class JpaDao extends JpaDaoSupport implements Dao {
@PersistenceContext(unitName = "PersistanceUnit", type = PersistenceContextType.EXTENDED)
private EntityManager em;
Cette approche est compatible avec extension JpaDaoSupport (qui nécessite l'injection dans un EntityManager)? Pour moi, cela ressemble à deux approches incompatibles avec la résolution du même problème, mais j'aimerais avoir quelques conseils de quelqu'un qui a plus d'expérience avec Spring.
Si je ne devais pas étendre JpaDaoSupport, comment dois-je construire mon DAO en utilisant l'approche @PersistenceContext?
Je comprends comment injecter l'EntityManager, j'ai cela fonctionne très bien. Mon problème est plus sur les meilleures pratiques pour Spring DAO. –
Je pense que si vous utilisez JPA en tant qu'approche standard, vous forcer à utiliser une solution Spring (c'est-à-dire étendre JpaSupport) n'a aucun sens. Si vous restez lié à l'injection JPA + EJB3, vous pouvez migrer vos fichiers jars vers un serveur d'applications quand vous le souhaitez. Mes 2 cents cents :) – diega