gpt4 book ai didi

spring - 如何在 Spring Data REST 投影中有条件地公开数据?

转载 作者:行者123 更新时间:2023-12-02 06:49:23 25 4
gpt4 key购买 nike

有一个投影 UserProjection 并且 User 表有一个字段 - enable_email,一个 bool 值。

@Projection(name = "summary", types = User.class)
public interface UserSummaryProjection {

String getEmail();
}

访问 URL /app/users/{id}?projection=summary 按预期显示电子邮件

  1. 如何将摘要投影配置为仅在 enable_emailtrue 时才返回电子邮件?

  2. 该配置仅影响此投影还是适用于 User 实体的所有投影?

最佳答案

我成功了并将发布答案 -

在投影中,只需使用 Spring bean 和方法名称使用 @Value 进行注释,如下所示 -

@Value("#{@userUtil.manageEmail(target)}")
String getEmail();

然后,我创建了一个带有 Component 注释的 Spring Bean,并添加了如下方法

public String manageEmail(User user) {

Profile profile = profileRepo.findByUser(user);
String[] paramsEnabled = profile.getSettings().split(",");
boolean emailAllowed = Arrays.stream(paramsEnabled).anyMatch((s) -> (s.equals(Constants.EMAIL_ENABLED)));

return emailAllowed ? user.getEmail() : null;

}

关于spring - 如何在 Spring Data REST 投影中有条件地公开数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com