isProperty()
如果该属性的访问器定义为而不是,则 Dozer 似乎不会映射布尔属性getProperty()
。
以下 groovy 脚本说明了该问题:
import org.dozer.*
class ProductCommand {
Boolean foo
}
public class ProductDto {
private Boolean foo;
public Boolean isFoo() { this.foo }
public void setFoo(Boolean p0) { this.foo = p0 }
}
def mapper = new DozerBeanMapper()
dto = new ProductDto(foo: true)
assert dto.isFoo()
ProductCommand mappedCmd = mapper.map(dto, ProductCommand)
assert mappedCmd.foo
最后一行的断言失败。但是,如果我重命名ProductDto.isFoo()
它ProductDto.getFoo()
就会通过。
我可以在推土机映射文件中设置一个标志/选项来指示它对布尔属性使用 anis
或访问器吗?get
或者,我可以为每个布尔属性添加自定义规则,但这不是很吸引人。
尽管上面的示例是用 Groovy 编写的,但我没有理由相信等效的 Java 代码不会表现出相同的行为。
这些 DTO 由 JAXB 生成(它生成一个“is”访问器,而不是布尔值的“get”访问器),所以我不能重命名访问器。我正在使用推土机 5.3.2。