相关疑难解决方法(0)

仅在序列化期间使用@JsonIgnore,但不反序列化

我有一个发送到服务器和从服务器发送的用户对象.当我发出用户对象时,我不想将散列密码发送给客户端.所以我添加@JsonIgnore了密码属性,但这也阻止了它被反序列化为密码,这使得在没有密码时很难注册用户.

我怎样才能@JsonIgnore应用于序列化而不是反序列化?我正在使用Spring JSONView,所以我没有很多控制权ObjectMapper.

我试过的事情:

  1. 加入@JsonIgnore物业
  2. @JsonIgnore仅添加getter方法

java spring json annotations jackson

298
推荐指数
5
解决办法
26万
查看次数

使用Spring Data Rest @Projection作为自定义控制器中资源的表示

有没有办法使用@Projection接口作为SDR中资源的默认表示?通过SDR存储库还是通过自定义控制器?

过去可以通过注入ProjectionFactory和使用该createProjection方法在自定义控制器中执行此操作,但最近的Spring Data Rest更新已经破坏了这一点.

我想对一个实体强制执行一个特定的视图,SDR投影似乎是一个理想的方法,特别是在HAL API的上下文中,而不是为自定义控制器编写硬DTO类和它们之间的映射等.摘录预测不是我所追求的,因为这些只适用于查看相关资源.

java spring spring-data-rest spring-hateoas spring-boot

4
推荐指数
1
解决办法
7392
查看次数

Spring Data REST:单个资源的投影表示

我有一个简单的UserRepository暴露使用Spring Data REST.这是User实体类:

@Document(collection = User.COLLECTION_NAME)
@Setter
@Getter
public class User extends Entity {

    public static final String COLLECTION_NAME = "users";

    private String name;
    private String email;
    private String password;
    private Set<UserRole> roles = new HashSet<>(0);
}
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个UserProjection类,它看起来如下:

@JsonInclude(JsonInclude.Include.NON_NULL)
@Projection(types = User.class)
public interface UserProjection {

    String getId();

    String getName();

    String getEmail();

    Set<UserRole> getRoles();
}
Run Code Online (Sandbox Code Playgroud)

这是存储库类:

@RepositoryRestResource(collectionResourceRel = User.COLLECTION_NAME, path = RestPath.Users.ROOT,
        excerptProjection = UserProjection.class)
public interface RestUserRepository extends MongoRepository<User, String> { …
Run Code Online (Sandbox Code Playgroud)

rest spring spring-data spring-data-rest spring-hateoas

2
推荐指数
1
解决办法
2363
查看次数