0

在 Tomcat 服务器上的 Web 服务(METRO 2.0)中获取/实例化 EntityManagerFactory 是否有比在 Web 服务本身的静态初始化程序中更好的方法/位置?

@WebService
public class TestWebService {

    private static EntityManagerFactory entityManagerFactory;

    static
    {
        entityManagerFactory = Persistence.createEntityManagerFactory("TestWSPU");
    }

    @WebMethod
    public List<User> getUsers() {
        EntityManager em = entityManagerFactory.createEntityManager();

        List<User> users = em.createQuery("from User u", User.class).getResultList();

        em.close();

        return users;
    }
}
4

1 回答 1

2

如果您使用的是普通 Tomcat(例如,不是 TomEE),您可以使用 aServletContextListener创建 EMF,然后将其放入单例中。然后从那个单身人士可能会公开一种方法来给你一个EntityManager.

于 2013-07-17T21:43:48.830 回答