nouveau au printemps et ici @stackoverflowSpring @Transactional fusion et persisteront question
Je construis un inventaire autonome & application de suivi des ventes (Apache Pivot/Spring/JPA/Hibernate/MySQL) pour une entreprise de distribution . Jusqu'à présent, je pense que tout est CRUD, donc je prévois d'avoir une classe de base avec tout @Transactional.
Ensuite, j'ai eu un problème avec ma méthode générique de sauvegarde. Est-ce que la méthode de persistance et de fusion de l'EntityManager de Spring a une différence? J'ai essayé de courir et j'ai appelé l'enregistrement pour l'insertion et la mise à jour et ça a bien fonctionné (je pense que le ressort actualise automatiquement l'entité chaque fois que j'appelle ma méthode de sauvegarde).
@Transactional
public abstract class GenericDAO {
protected EntityManager em;
// em [email protected]/setter
public void save(T t) {
// if (t.getId() == null) // create new
// {
// em.persist(t);
// } else // update
// {
em.merge(t);
// }
}
}
Et btw, ayant une telle configuration, je ne vais pas compromettre les performances? Comme appeler salesDAO.findAll() pour générer des rapports (qui n'a pas besoin d'être transactionnel, n'est-ce pas?).
merci !!!
Je suis l'invité le plus simple. Donc, si j'ai JpaDaoSupport et que j'en reçois une entité, les modifications seront automatiquement validées? Je pense que je vais avoir deux variantes de méthode d'enregistrement, une qui persiste et une qui appelle flush. Un commentaire à ce sujet? – thirdy
Voulez-vous dire automatique comme engagé sans sauvegarde ou mise à jour? Si c'est le cas, je ne le pense pas, j'appelle simplement enregistrer sur une nouvelle entité ou mettre à jour sur une existante pour persister. Je n'ai jamais eu besoin d'appeler la méthode flush, mais mon accès à la base de données est assez simple pour une requête donnée. –
Je vais devoir arrêter d'essayer le printemps pour l'instant. Juste curieux, comment les Grails améliorent-ils cela? Je n'aurai pas à rencontrer des problèmes comme ceux-ci dans Grails, n'est-ce pas? – thirdy