我可以使@RepositoryRestResource和JpaRepository用户敏感吗?

时间:2018-04-06 23:20:22

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

我有一个典型的应用程序,用户可以在多个组中,当然,一个组可以容纳多个用户:

User <-> GroupMember (ManyToMany) <-> Group

此外,GroupMember可以有其他关系,例如它可以有一个属于它的项目 - 但仅限于该特定组的上下文中:

GroupMember <- OneToMany <- GroupMemberItem

我的第一个问题是:让我们说有GroupRepository

@RepositoryRestResource(collectionResourceRel = "groups", path = "groups")
public interface GroupRepository extends JpaRepository<GroupEntity, Long> {
}

如何只获取用户实际分配给的组,并使另一个用户无法访问他不是的组。

@RepositoryRestResource / JpaRepository actullay是为此设计的吗?我绝对反对编写@Query注释,我最终编写的查询无法完全解释为什么我想首先使用它们。

所以如果我告诉你

  

&#34; 我希望http://localhost:8080/groups返回当前登录用户登录的所有组&#34;

你会建议我去@RestController@Service@Repository我自己实现查询的地方甚至可能会在此时切换到jOOQ或你会告诉我去@RepositoryRestResource,因为有一种非常简单的方法可以实现这一点,而无需在Java interface内编写复杂的查询吗?

第二个问题是对第一个问题的跟进。说过GroupMember可以拥有一个或多个GroupMemberItem,我很难理解如何使用@RepositoryRestResource来获取所选项中登录用户的所有项目组。只编写SQL查询不是问题,但可以使用@RepositoryRestResource / JpaRepository来完成吗?如果有,怎么样?我找不到一个例子,我现在已经找了很长一段时间。

0 个答案:

没有答案