Hibernate 希望了解一下是Spring管理事务,而不是使用工厂方法

Hibernate 希望了解一下是Spring管理事务,而不是使用工厂方法,hibernate,jpa,jakarta-ee,persistence,jndi,Hibernate,Jpa,Jakarta Ee,Persistence,Jndi,这里有很多建议,作为一条建议,我发现问题越容易理解,你得到的答案就越好,不仅仅是在堆栈溢出上,而是在互联网上。我明白,面对许多新技术时,形成清晰的问题是很困难的,我自己的问题历史上有一些巨大的问题,但重要的是在请其他人帮助你之前澄清你的想法和问题。你可能想把它分解成几个问题,重点是清楚地问一个问题。一般来说,如果你提前花时间问一个明确的问题,人们会更容易帮助你。你可能需要研究的一件事是Spring管理事务,而不是使用工厂方法 这里有很多建议,作为一条建议,我发现问题越容易理解,你得到的答案就越好

这里有很多建议,作为一条建议,我发现问题越容易理解,你得到的答案就越好,不仅仅是在堆栈溢出上,而是在互联网上。我明白,面对许多新技术时,形成清晰的问题是很困难的,我自己的问题历史上有一些巨大的问题,但重要的是在请其他人帮助你之前澄清你的想法和问题。你可能想把它分解成几个问题,重点是清楚地问一个问题。一般来说,如果你提前花时间问一个明确的问题,人们会更容易帮助你。

你可能需要研究的一件事是Spring管理事务,而不是使用工厂方法


这里有很多建议,作为一条建议,我发现问题越容易理解,你得到的答案就越好,不仅仅是在堆栈溢出上,而是在互联网上。我明白,面对许多新技术时,形成清晰的问题是很困难的,我自己的问题历史上有一些巨大的问题,但重要的是在请其他人帮助你之前澄清你的想法和问题。你可能想把它分解成几个问题,重点是清楚地问一个问题。一般来说,如果你提前花时间问一个明确的问题,人们会更容易帮助你。

是的。。你完全正确。我为这个问题的形式道歉。这实际上是我第一次在stackoverflow上发帖,所以这个问题很难看。无论如何,多亏了你的反馈,我试着提出更好的问题


不管怎样,我已经找到了我问题的答案。我决定不使用控制器类,只使用实体的会话facadebean。我使用了容器管理的持久性。因此不再需要getEntityManager()方法或助手类。而是使用形式为“@PersistenceContext”的DI。另外,因为我使用的是容器管理的持久性,所以我不再需要UserTransactions。

是。。你完全正确。我为这个问题的形式道歉。这实际上是我第一次在stackoverflow上发帖,所以这个问题很难看。无论如何,多亏了你的反馈,我试着提出更好的问题

不管怎样,我已经找到了我问题的答案。我决定不使用控制器类,只使用实体的会话facadebean。我使用了容器管理的持久性。因此不再需要getEntityManager()方法或助手类。而是使用形式为“@PersistenceContext”的DI。另外,因为我使用的是容器管理的持久性,所以我不再需要UserTransactions

@Resource private UserTransaction utx = null;
@PersistenceUnit(unitName = "TestEnterpriseApplication-ejbPU") private EntityManagerFactory emf = null;
1. EntityManager getEntityManager() { return emf.createEntityManager() }
2. void create(XXX xxx) throws PreexistingEntityException, RollbackFailureException, Exception{}
3. void edit(XXX xxx) throws NonexistentEntityException, RollbackFailureException, Exception{}
4. void destroy(Long id) throws NonexistentEntityException, RollbackFailureException, Exception {}
5. List<XXX> findXXXEntities(){}
6. List<XXX> findXXXEntities(int maxResults, int firstResult)  {}
7. List<XXX> findXXXEntities(boolean all, int maxResults, int firstResult){}
8. XXX findXXX(Long id){}
9. int getXXXCount(){}
@PersistenceContext private EntityManager em;
1. void create(XXX xxx) { em.persist(xxx); }
2. void edit(XXX xxx) { em.merge(xxx); }
3. void remove(XXX xxx) { em.remove(em.merge(xxx)); }
4. List<XXX> findAll() { return em.createQuery("select object(o) from XXX as o").getResultList();  }
XXXJpaController XXXController = new XXXJpaController();
1. public void create(XXX xxx) throws PreexistingEntityException, RollbackFailureException, Exception {
        XXXController.create(xxx); }
2. public void edit(XXX xxx) throws NonexistentEntityException, RollbackFailureException, Exception{
        XXXController.edit(xxx); }
3. public void remove(XXX xxx) throws NonexistentEntityException, RollbackFailureException, Exception{
        XXXController.destroy(xxx.getId()); }
4. public XXX find(Object id) {
        return XXXController.findXXX((Long)id); }
5. public List<XXX> findAll() {
        return XXXController.findXXXEntities(); }