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

} 

这工作非常适合我。

相关问题