有没有办法在游戏中使用 EntityManager!框架 1.2.x 404 页面?
Posted
技术标签:
【中文标题】有没有办法在游戏中使用 EntityManager!框架 1.2.x 404 页面?【英文标题】:Is there a way to use EntityManager in play! framework 1.2.x 404 page? 【发布时间】:2013-01-07 10:00:56 【问题描述】:我们正在提供自定义 404.html 页面(在 app/views/errors 中)供您玩耍! 1.2.5
在服务 404 期间,我们想连接到 DB,但是这样做时我们得到:
play.exceptions.JPAException: The JPA context is not initialized.
JPA Entity Manager automatically start when one or more classes annotated
with the @javax.persistence.Entity annotation are found in the application.
at play.db.jpa.JPA.get(JPA.java:22)
at play.db.jpa.JPA.em(JPA.java:51)
at play.db.jpa.JPQL.em(JPQL.java:18)
at play.db.jpa.JPQL.find(JPQL.java:46)
...
at controllers.Security.check(Security.java:146)
at play.utils.Java.invokeStaticOrParent(Java.java:162)
at play.utils.Java.invokeChildOrStatic(Java.java:184)
at controllers.Secure$Security.invoke(Secure.java:203)
...
at play.server.PlayHandler.serve404(PlayHandler.java:681)
我是否应该寻求像 https://***.com/a/12242994/1444089 这样的解决方案 - 所以定义我自己的控制器处理程序而不仅仅是一个模板?
也许有一些配置选项,但找不到。
最后但并非最不重要的一点 - 为什么会发生这种情况,是否有原因导致 404 进入其他请求生命周期而不是典型的播放请求?
【问题讨论】:
【参考方案1】:您可以在 try/finally 中使用 JPAPlugin 方法 startTx 和 closeTx
JPAPlugin.startTx(false);
try
// your code
finally
JPAPlugin.closeTx();
【讨论】:
以上是关于有没有办法在游戏中使用 EntityManager!框架 1.2.x 404 页面?的主要内容,如果未能解决你的问题,请参考以下文章
一个创建函数可以使用 EntityManager (JPA) 处理任何类型的对象吗?
有没有办法在 JPQL 中检查 null ZonedDateTime?
JPA EntityManager 返回没有 entityManager.clear 的陈旧值
没有可用的事务性 EntityManager - 使用 JPA Api,Hibernate 会话出错
在 Java 中使用 EntityManager 和 Criteria 时出现 NullPointerException