编组带有JPA批注的类时出现JAXBException

jnj*_*jnj 3 google-app-engine jpa jaxb

将注释对象编组为JSON时出现以下异常:

javax.xml.bind.JAXBException:类javax.jdo.identity.LongIdentity或其任何超类对此上下文都是已知的。在com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648)上的com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:594)

以下是我的Comment定义,请注意,我混合了JAXB注释(用于编组)和JPA注释(用于实现GAE的持久性)。

@Entity
@XmlRootElement(name = "Comment")
@XmlAccessorType(XmlAccessType.FIELD)
public class Comment {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @XmlElement(name = "CommentId")
    private Long commentId;

    @Basic
    @XmlElement(name = "Author")
    private String author;

...
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么异常与LongIdentity有关?

bdo*_*han 5

尝试注释属性而不是字段。JPA实现可能已使用字节码操作来添加LongIdentity类型的字段。