Java - MapStruct:Mapper的自定义属性,如`nullValueCheckStrategy`

我可以在界面Mapper.java中添加一个新属性,如nullValueCheckStrategy以检查权限吗?Java - MapStruct:Mapper的自定义属性,如`nullValueCheckStrategy`

如果我添加了nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS Code Generates将为每个字段添加if(filed != null)

而且我想要一个如果过于喜欢if(rightService.hasRole("Admin") { ... }以避免更新没有权限的用户的值。

这是我第一次在这里问一个问题,我希望能得到一些答案,非常感谢。

回答:

这是目前不支持。但是,您可以通过编写自定义映射器并为您拥有的不同角色提供不同的方法来实现这一点。您的映射器可能如下所示:

@Mapper 

public abstract class MyMapper {

private MyService service;

public void update(Target target, Source source) {

if (service.hasRole("Admin")) {

updateForAdmin(target, source);

} else if (service.hasRole("X")) {

updateForX(target, source);

}

}

//Mappings for Admin, ignore those that he/she has no rights

protected abstract updateForAdmin(@MappingTarget Target target, Source source);

//Mappings for X, ignore those that he/she has no rights

protected abstract updateForX(@MappingTarget Target target, Source source);

//setter injection

}

基本思想是您为每个角色提供适当映射的方法。 mapper有一个公共方法,其余的只是MapStruct的实现。

以上是 Java - MapStruct:Mapper的自定义属性,如`nullValueCheckStrategy` 的全部内容, 来源链接: utcz.com/qa/266200.html

回到顶部