Can Java EE 7';s核心接口(EntityManager,…)是否扩展自动关闭?

Can Java EE 7';s核心接口(EntityManager,…)是否扩展自动关闭?,java,jakarta-ee,java-ee-7,Java,Jakarta Ee,Java Ee 7,我一直在想,核心接口是否会扩展。(我主要指的是核心接口等,但我不确定是否有其他接口或类可能自动关闭。) 我认为他们应该这样做,这是我假设的基础 甚至不扩展,但是扩展了自动关闭的(就像包中的其他几个接口一样) 像EntityManager这样的接口是否可以扩展AutoCloseable,从而更好地为我们服务?或者神奇地关闭实体管理器太复杂了 此特定功能是否被视为一部分?如果您正在管理自己的JPA对象,那么对于EntityManager和EntityManager Factory来说,尝试使用资源是

我一直在想,核心接口是否会扩展。(我主要指的是核心接口等,但我不确定是否有其他接口或类可能自动关闭。)

我认为他们应该这样做,这是我假设的基础

甚至不扩展,但是扩展了
自动关闭的
(就像包中的其他几个接口一样)

EntityManager
这样的接口是否可以扩展
AutoCloseable
,从而更好地为我们服务?或者神奇地关闭
实体管理器
太复杂了


此特定功能是否被视为一部分?

如果您正在管理自己的JPA对象,那么对于EntityManager和EntityManager Factory来说,尝试使用资源是一件好事

我选择创建一个实用程序,将EntityManagerFactory封装在实现接口版本的中。调用处理程序然后拦截对createEntityManager()的调用,以便它可以返回也实现自动关闭的底层EntityManager实例的代理版本


我认为在容器管理的JPA对象世界中工作要容易得多,但是如果你在一个简单的Web应用程序中无法运行,那么这可能对你有用。

我认为在这里的JPA规范邮件列表中问一个好问题:它曾经出现在Servlet列表中。问题是,JPA、JSF等希望在JavaEE之外向后兼容。如果您使用容器管理的JPA版本,事务确实会以“自动神奇”的方式启动和关闭,您不必担心这一点。如果您的问题与JPA的应用程序管理版本相关,您应该编辑该问题。massfords忘了提到他写了一篇很好的文章,介绍了如何实际创建此类代理,您可以在此处找到:。谢谢你,马克!