在将Comment对象编组为JSON时出现以下异常:
javax.xml.bind.JAXBException:class javax.jdo.identity.LongIdentity 在这种情况下,也不知道它的任何超类。在 com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:594) 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648)
下面是我的评论定义,请注意我混合了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;
...
}
我没有得到的是为什么例外与LongIdentity有关?
答案 0 :(得分:5)
尝试注释属性而不是字段。 JPA实现可能使用字节代码操作来添加LongIdentity类型的字段。
答案 1 :(得分:2)
Blaise真的解释了我的问题,问题解决了,这里是修改后的评论类。
@Entity
@XmlRootElement(name = "Comment")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@XmlElement(name = "CommentId")
public Long getCommentId();
@Basic
@XmlElement(name = "Author")
public String getAuthor();
...
}