2016-04-11 55 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(); 

} 

當我做與URL

本地主機GET請求: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(); 

} 

這工作非常適合我。

相關問題