Я получил следующее исключение, когда сортировал объекты комментариев для JSON: javax.xml.bind.JAXBException: класс 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)JAXBException при сортировке класса с аннотациями JPA
Ниже приведено определение моего комментария, обратите внимание, что я смешивал аннотации 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?
Дополнительная информация, это исключение произошло только после того, как я сохранил новый экземпляр комментария к GAE, и JAXB попытался собрать оставшийся комментарий JSON. Все в порядке, когда я возвращаю комментарии из репозитория и маршалла JSON. – blackbeam
Пробовал ли вы помещать аннотации на объект вместо поля? –
Привет, Блейз, да. Но на этот раз я не смог совершить транзакцию, получил org.datanucleus.transaction.NucleusTransactionException: транзакция не удалось выполнить. BTW, я переместил аннотации в getCommentId(). – blackbeam