Java 可嵌入到Datanucleus中

Java 可嵌入到Datanucleus中,java,jpa,datanucleus,Java,Jpa,Datanucleus,我有以下模型类: @Entity public class A { private B b; } @Embeddable public class B { ... } 我使用的是SpringMVC,控制器用@Transactional注释,我指定了以下datanucleus属性(以及其他属性) 在视图(JSP)中,当事务应该结束并分离对象时,如果我尝试访问${a.b.whatever}我会得到这个错误 javax.jdo.JDODetachedFieldAccessE

我有以下模型类:

@Entity
public class A {
    private B b;
}

@Embeddable
public class B {
    ...
}    
我使用的是SpringMVC,控制器用@Transactional注释,我指定了以下datanucleus属性(以及其他属性)

在视图(JSP)中,当事务应该结束并分离对象时,如果我尝试访问
${a.b.whatever}
我会得到这个错误

javax.jdo.JDODetachedFieldAccessException: You have just attempted to access field "b" yet this field was not detached when you detached the object. Either dont access this field, or detach it when detaching the object.
A.jdoGetb(A.java)
A.getB(A.java)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
org.apache.el.parser.AstValue.getValue(AstValue.java:123)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)

我在MySQL中使用DataNucleus 3.1.3

知道这是为什么吗?我该如何修复它?

添加

 @Basic(fetch=FetchType.EAGER)
以前

private B b;
这将使B急切地被抓取,并使其正确地可分离

您可以尝试使用提取组来指定何时应提取哪些内容。

添加

 @Basic(fetch=FetchType.EAGER)
以前

private B b;
这将使B急切地被抓取,并使其正确地可分离

您可以使用fetch组进行实验,以指定何时应该提取什么