我正在使用 Dozer,它正在将来自 WebService 的 JAXB 对象映射到驻留在我们应用程序服务层中的业务对象。在某些特定情况下,我需要将字符串值中的代码映射到字符串值中的人类可读描述。 示例:“FLT”映射到“FLAT”,“TRP”映射到“TRAP”。我有很多这样的类型映射。
我正在通过继承 DozerConverter 并实现两个抽象方法 convertTo() 和 convertFrom() 来实现自定义 Dozer Converter。在这些中,我想分别将“FLT”映射到“FLAT”,将“FLAT”映射到“FLT”,但不幸的是,Dozer 没有调用正确的 convertTo() 或 convertFrom( ) 方法正确。
还有其他人遇到这个问题并且可以指出正确的方向吗? 谢谢
最佳答案
如果您可以控制 POJO,则可以将这些字符串视为枚举。您必须为 Web 服务端和业务逻辑端定义枚举,但我认为这是比使用转换器或 xmladapter 更优雅的解决方案。
枚举示例:
public enum ENUM_WS {
@XmlEnumValue("TRP") TRAP,
@XmlEnumValue("FLT") FLAT
}
public enum ENUM_BL {
@XmlEnumValue("TRAP") TRAP,
@XmlEnumValue("FLAT") FLAT
}
关于java - Dozer Converter 将字符串映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932822/