【问题标题】:mapping constant values in Dozer在推土机中映射常量值
【发布时间】:2012-08-08 19:47:32
【问题描述】:

当使用 Dozer 映射两个类时,我想从 Java 类映射常量,如下面的字段 2 所示的示例映射所示。 除了 Factory Bean 实例之外,在 Dozer 中是否有更清洁的方法来执行此操作..

     <mapping>
    <class-a>com.mod.Class1</class-a>
    <class-b>com.mod.Class2</class-b>
    <field>
        <a>field1inClass1</a>
        <b>field1inClass2</b>
    </field>
    <field>       <!-- This is from constants. -->
        <a>constants.Field</a>
        <b>field2inClass2</b>
    </field>
   </mapping> 

【问题讨论】:

    标签: dozer


    【解决方案1】:

    我过去也需要这个,但没有成功,Dozer 不支持映射到不同于class-aclass-b 中定义的类中的常量值。如果您要在 class-aclass-b 的类中定义常量,则只需进行单向映射并在常量字段中使用 is-accessible="true"

    作为一个丑陋的解决方法,您可以创建另一个 mapping 元素来进行从常量类到目标对象的单向映射,但是您必须向 Dozer 传递常量类的实例(我知道,这很糟糕)只有当您的 Constants 类是可实例化的(这是最糟糕的)时,这才有可能。

    <mapping>
        <class-a>ConstantsClass</class-a>
        <class-b>InstantiableClass</class-b>        
        <field type="one-way">           
            <a is-accessible="true">THE_CONSTANT</a>
            <b>value</b> 
        </field>        
    </mapping>
    

    Related topic on Dozer forums

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多