当前位置: 首页 > 知识库问答 >
问题:

推土机布尔映射-布尔值

牟星火
2023-03-14

我公开了一个使用另一个SOAP服务的服务。我得到了JAXB生成的服务模型。当我使用服务时,数据被设置到与此模型相关的对象中。我定义了自己的域模型,它与JAXB模型具有完全相同的类集,但没有xml注释等。我使用dozer来执行数据映射。当标记为注释(nillable=true)的某些布尔元素为null时,我的域模型中的目标对象布尔对象将设置为默认的true或false值。我希望它保留相同的空值。布尔变量的映射和定义如下所示。

<mapping>
    <class-a>com.customer.types.CustomerPreferences
    </class-a>
    <class-b>com.customer.types.xml.CustomerPreferences
    </class-b>
    <field>
        <a is-accessible="true">isRequired</a>
        <b is-accessible="true">isRequired</b>
    </field>
</mapping>

JAXB模型

  @javax.xml.bind.annotation.XmlElement(nillable=true)
  protected java.lang.Boolean isRequired;
  // getters and setters

域名模型

private Boolean isRequired;
//getters and setters

共有1个答案

聂迪
2023-03-14

这是因为JAXB为布尔(对象)属性生成带有“is”前缀的方法,而Dozer为基本布尔类型使用“is”前缀。“可访问”推土机映射配置属性应能解决此问题。但出于某种原因,它似乎没有。您可以尝试:

通过删除“is”前缀重命名域模型中的属性

将域模型中的getter和setter重命名为get/set

使用“get method”推土机映射配置属性定义JAXB模型的get方法

使用XJC插件修复JAXB模型中的get方法

 类似资料:
  • 我试图使用Dozer映射UUID字段,遇到了Dozer github上提到的一个问题: https://github.com/DozerMapper/dozer/issues/83 问题是-显然,Dozer依赖于UUID中不存在的默认无参数构造函数。因此,该链接显示了如何告知推土机执行参考复制。然而,使用该提示并没有帮助,我仍然会遇到以下异常: org.dozer.java.lang.java.u

  • 问题内容: 我在MySQL表(TINYINT(1))中具有BOOLEAN类型,并且尝试映射实体中的布尔字段,但这会生成异常: 我将实体中的字段更改为字节并进行了相应的更改,因此它的作用是布尔值,我得到: 我尝试在字段上使用注释: 但我得到: 问题答案: 从我在这里读到的内容: org.hibernate.HibernateException:maegul.users中列admin的列类型错误。找到

  • 我在Spring启动时使用推土机映射器。如果我将数据从实体映射到EntityDTO,那么dozer maper的工作就是将数据从实体类复制到EntityDTO,对于原语也是如此。但是假设我有这样一门课 和名称为EntityDTO的DTO 那么它不会将数据从entityChild映射到EntityChildTos,有人能帮我解决这个问题吗?

  • 我是使用dozer的新手。我需要将集合映射到一个类,该类是集合中源类的属性。我有如下类技术 我想映射到 哪里 我的推土机绘图将是什么样子?

  • 几个月前我们开始使用Hazelcast。我们最近开始在生产环境中测试它,现在大约每周看到一次这个异常: 2020-02-11 12:10:00,084upport.invokeNoDataMemberInClusterException:无法找到调用的目标!分区所有者为空,但无法分配分区,因为集群中的所有节点都是精简成员。upport.java:467upport.java:406com.haze

  • 3.4. 布尔型 一个布尔类型的值只有两种:true和false。if和for语句的条件部分都是布尔类型的值,并且==和<等比较操作也会产生布尔型的值。一元操作符!对应逻辑非操作,因此!true的值为false,更罗嗦的说法是(!true==false)==true,虽然表达方式不一样,不过我们一般会采用简洁的布尔表达式,就像用x来表示x==true。 布尔值可以和&&(AND)和||(OR)操作