使用Spring Boot模拟自定义*关系*的最佳实践

时间:2018-04-19 08:53:45

标签: spring hibernate spring-data spring-data-jpa

Spring Boot中的最佳做法是在投影中模拟两个实体之间的自定义关系。

我的实体Participation链接到CompetitionUserTeam

public class Participation
{
    @Id
    private String id;

    @NonNull
    @OneToOne
    private Competition competition;

    @OneToOne
    private Team team;

    @NonNull
    @OneToOne
    private User user;

    private String info;
}

在我的项目中,我想将特定Users的所有参与TeamCompetition相关联。为此,我写了一个CompetitionDTO,其字段List<User> participants由自定义CompetitionService填充:

public Page<CompetitionDTO> teamParticipations (Team team, Pageable pageable)
{
    Page<CompetitionDTO> page = cRep.findTeamParticipation(team, pageable);
    page.forEach(competition -> competition.setParticipants(pRep.findParticipants(competition, team)));
    return page;
}

我不太喜欢这种方法,因为我认为有一种更优雅的方法可以用Spring做到这一点。

0 个答案:

没有答案