我可以从JPA bean获取对管理它的EntityManager实例的引用吗?

时间:2011-09-14 10:06:48

标签: java java-ee jpa

这个问题基本上总结了一下。

Play框架具有JPA bean继承的JPABase类。这个类有一个名为em()的方法,它返回bean的entityManager实例。普通JPA中是否有与此相同的东西?

2 个答案:

答案 0 :(得分:5)

AFAIK,没有。而且我会发现它非常值得怀疑。 JPA实体应该是在持久层之外可用的POJO,其中JPA类甚至不在类路径中。在这些POJO中公开EntityManager对我来说似乎不对。

答案 1 :(得分:0)

看起来Play Framework实现了Active Record模式,允许您直接在bean中进行持久性操作。这是完全可以接受的,您可以实现类似的解决方案。

但是,一旦选择了这种方法,您将无法获得POJO的好处。例如,如果您的应用程序具有n层架构,则此解决方案可能不是最佳选择。

无论如何看看源代码,它是免费的! https://github.com/playframework/play/blob/master/framework/src/play/db/jpa/JPABase.java