2016-04-11 6 views
4

У меня есть структура JPA дереваКак выставить полную древовидную структуру с помощью Spring Data REST и HATEOAS?

@Entity 
public class Document { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int id; 
    private String text; 

    @ManyToOne 
    @JoinColumn(name = "parent") 
    Document parent; 

    @OneToMany(mappedBy = "parent", fetch = FetchType.EAGER) 
    Set<Document> children; 

    (getters and setters) 

} 

и проекция

@Projection(name = "all", types = Document.class) 
public interface AllDocumentsProjection { 

    int getId(); 
    String getText(); 
    Set<Document> getChildren(); 

} 

Когда я делаю запрос GET с URL

локальный: 8080/документы/1 проекции = все

Я получаю только первые дети корневого документа. Не дети детей. Возможно ли это с прогнозами? Или есть другой способ?

ответ

1

Я почти уверен, что нет возможности рекурсивно внедрять ресурсы через projections. Только другая вещь, о которой я думаю, заключается в том, чтобы обрабатывать эту логику вручную в контроллере:/

-1

Попробуйте excerpts.

Вы должны добавить в свой репозиторий определения в excerptProjection поле, как показано ниже:

@RepositoryRestResource(excerptProjection = AllDocumentsProjection.class) 
interface DocumentRepository extends CrudRepository<Document, Integer> {} 
1
@Projection(name = "all", types = Document.class) 
public interface AllDocumentsProjection { 

    int getId(); 
    String getText(); 
    Set<AllDocumentsProjection> getChildren(); 

} 

Это отлично работает для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^