Estou com problema para serializar também.
meu caso:
result.use(Results.json()).withoutRoot().from(produtos)
.include("fichasTecnica")
.include("fichasTecnica.fichaTecnicaItens")
.include("fichasTecnica.fichaTecnicaItens.materiaPrima")
.serialize();
Ou seja tenho uma List chamada de produtos, e cada produto tem uma lista de ficha técnica, e cada ficha técnica tem vários itens e cada item tem uma matéria prima.
só que nessa lista de produtos tem umas que nem se quer tem fichasTecnicas ( isso seria um problema?).
se eu olho no firebug ta assim:
só mostra UM produto (sendo que na minha list na controller tem 3) e seus atributos, e na parte da ficha técnica ta assim:
"fichasTecnica": [
false,
{
"@class": "produto"
model Produto:
@ManyToMany(targetEntity = FichaTecnica.class, fetch = FetchType.LAZY)
@JoinTable(name = "produto_ficha_tecnica", joinColumns = @JoinColumn(name = "produto_id"), inverseJoinColumns = @JoinColumn(name = "ficha_tecnica_id"))
private List<FichaTecnica> fichasTecnica;
model ficha técnica:
@Valid
@Cascade(value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@OneToMany(targetEntity = FichaTecnicaItem.class, mappedBy = "fichaTecnica", cascade = CascadeType.ALL)
private List<FichaTecnicaItem> fichaTecnicaItens;
model ficha técnica itens:
@ManyToOne(fetch = FetchType.EAGER)
@NotNull(message = "Campo 'matéria prima' deve ser preenchido.")
@JoinColumn(nullable = false, name = "materia_prima_id")
private MateriaPrima materiaPrima;