У меня есть такая сущность:
@Entity
@XmlRootElement
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private com.google.appengine.api.datastore.Key key;
private String content;
private String title;
private Date created;
private Date lastUpdate;
private boolean isActive;
/* public getter and setters */
}
Теперь у меня есть оставшийся webserivce, который возвращает статьи:
@SuppressWarnings({ "unchecked", "unused" })
@GET
@Path("/{user}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public List<Article> getArtilceListByUser(@PathParam("user") String userName) {
List<Article> articles = null;
EntityManager em = EMF.get().createEntityManager();
try {
articles = (List<Article>) em.createQuery("SELECT FROM Article WHERE createdBy = :user AND isActive = true")
.setParameter("user", userName)
.getResultList();
// lazy load is activated, but em is closed (find a better solution)
for (Article article : articles) ;
} finally {
em.close();
}
return articles;
}
Проблема в том, что объект com.google.appengine.api.datastore.Key не может быть сериализован в json или xml, но мне нужен идентификатор статей ... Поэтому я должен использовать длинный тип для идентификатора или добавить дополнительныйполе, в которое оборачивается ключ?У вас есть лучшие решения для этой проблемы?