Spring Data Projections。递归问题

时间:2018-04-18 09:31:06

标签: spring spring-data spring-data-jpa spring-data-rest

我对递归投影有疑问。

在弹簧数据休息中使用投影的最佳方法是什么?

我有下一个实体:个人资料参数章节

他们之间的关系是下一个:

- >使用参数配置文件 ManyToMany

- >参与 ManyToOne 与章节

我已经定义了我的个人预测并将其包含在我的存储库中,并附带了摘录属性但是当我请求它们时,投影仅在第一级有效,而在我的情况下,当我列出个人资料时,我看到了我申请了配置文件实体但没有看到我为第二级中的param实体定义的投影的投影。

预测在这里:

@Projection(name = "profileProjection", types = Profile.class)
public interface ProfileProjection {

    int getId();

    List<Param> getParams();

}

@Projection(name = "paramProjection", types = Param.class)
public interface ParamProjection {

    int getId();

    Chapter getChapter();

    List<Profile> getProfiles();

}

另外,当我只想看到第一级时,我看到该配置文件与我的Params相关联。停止递归的最佳方法是什么?我试图在这样的网址中使用投影参数,但效果不佳。

...... / parametros?投影= parametroProjection

在网址中应用两个投影是否可行?

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么。如果要组合投影,可以执行以下操作:

@Projection(name = "profileProjection", types = Profile.class)
public interface ProfileProjection {
    int getId();

    // note type of list is ParamProjection 
    List<ParamProjection> getParams(); 
}

@Projection(name = "paramProjection", types = Param.class)
public interface ParamProjection {

    int getId();
    Chapter getChapter();
}

...... / parametros?投影= profileProjection