Playframework 如何处理Play 1.2.x中的模型和await()函数?

Playframework 如何处理Play 1.2.x中的模型和await()函数?,playframework,Playframework,我的问题是以下(伪)代码: 导致“无会话或会话已关闭”最后一行出现异常。这是因为,据我所知,调用await()会挂起请求并关闭hibernate会话 处理这个问题的正确方法或最佳实践是什么?很多时候,我会想开始一个作业,加载一些实体,然后等待作业的结果。现在,这些实体都来自旧会话,因此很难正确使用 谢谢 可能有另一个线程正在执行语句中的“something”(例如Callable): await(something); 如果是这种情况,您可以尝试将当前JPA实例传播到此线程,如下所示: fin

我的问题是以下(伪)代码:

导致“无会话或会话已关闭”最后一行出现异常。这是因为,据我所知,调用await()会挂起请求并关闭hibernate会话

处理这个问题的正确方法或最佳实践是什么?很多时候,我会想开始一个作业,加载一些实体,然后等待作业的结果。现在,这些实体都来自旧会话,因此很难正确使用


谢谢

可能有另一个线程正在执行语句中的“something”(例如Callable):

await(something);
如果是这种情况,您可以尝试将当前JPA实例传播到此线程,如下所示:

final JPA jpa = JPA.local.get();
await(new Job() {
    public void doJob() throws Exception {
        JPA.local.set(jpa);
        //do something
    };
}.now());

这可能太晚了,无法提供帮助:),但我找到的解决方案是在wait()之后将最初加载的模型合并到新的Hibernate会话中


该操作是指http会话还是hibernate会话?如果是前者,听起来像是一个已知的bug。看,我指的是hibernate会话。从我在发布这个问题后了解到,我想在Play1.x中做的是不可能的,hibernate会话和JDBC模型不支持挂起的连接。
final JPA jpa = JPA.local.get();
await(new Job() {
    public void doJob() throws Exception {
        JPA.local.set(jpa);
        //do something
    };
}.now());
Model aModel = Model.findById(1);
await(something);
aModel = aModel.merge();
aModel.causeALazyLoad();