JAXB和未映射的属性

JAXB(JSR-222)是例外配置,这意味着存在默认映射应用于域对象。 这意味着有时您需要显式排除字段/属性。 在本文中,我将讨论如何使用@XmlTransient或@XmlAccessorType(XmlAccessType.NONE)以及何时使用每个选项。

@XmlTransient

当使用@XmlTransient标记字段/属性时,您明确地告诉您的JAXB实现将其视为未映射的属性。 当少于一半的字段/属性未映射时,这很有用。

package blog.unmapped;import java.util.List;
import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;private Address billingAddress;private Address shippingAddress;private List<PhoneNumber> phoneNumbers;}

如果未映射一半以上的字段/属性,则由于异常,我们将停止获得配置的好处,因为与映射映射的属性相比,我们需要做更多的工作以使用@XmlTransient排除属性。 接下来,我将演示如何在此用例中利用@XmlAccessorType(XmlAccessType.NONE)。

package blog.unmapped;import java.util.List;
import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;@XmlTransientprivate Address billingAddress;@XmlTransientprivate Address shippingAddress;@XmlTransientprivate List<PhoneNumber> phoneNumbers;}

@XmlAccessorType(XmlAccessType.NONE)

通过设置@XmlAccessorType(XmlAccessType.NONE),我们将通过例外禁用配置。 现在,将仅映射显式映射的属性。 当少于一半的域对象的字段/属性被映射时,这很有用。

package blog.unmapped;import java.util.List;
import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;@XmlTransientprivate Address billingAddress;@XmlTransientprivate Address shippingAddress;@XmlTransientprivate List<PhoneNumber> phoneNumbers;}

进一步阅读

如果您喜欢这篇文章,那么您还喜欢:

  • 使用JAXB的@XmlAccessorType配置字段或属性访问
  • 使用@XmlTransient忽略继承

Java XML和JSON绑定博客中的JCG合作伙伴 Blaise Doughan的参考: JAXB和未映射的属性 。


翻译自: https://www.javacodegeeks.com/2012/04/jaxb-and-unmapped-properties.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sublime text3 使用SVN插件

Simon在项目中经常使用SVN&#xff0c;每次都要切换提交&#xff0c;很麻烦&#xff0c;有了这个SVN插件就很方便了&#xff0c;使用快捷方式提交&#xff0c;更新。 安装: Ctrl Shift P 调用出Sublime Text的包管理工具&#xff0c;输入TortoiseSVN&#xff0c;回车进行安装…

c语言空格有什么作用,空格在c语言中怎么表示 C语言中的空格字符怎么表示

c语言中表示空格的是什么代码&#xff1f;分析如下&#xff1a; 不是所有字符都需要转义的&#xff0c;空格直接就敲空格&#xff0c;或者使用ASCII码值赋值为32。 空格没有转义字符。合法转义字符如下&#xff1a;\a 响铃(BEL) 、\b 退格(BS)、\f 换页(FF)、\n 换行(LF)、\r 回…

二维数组实现八皇后问题

之前关八皇后的问题全部使用的是一维数组进行实现(http://www.cnblogs.com/SeaSky0606/p/4604955.html)&#xff0c;现改一种数据存储方式&#xff0c;按照8x8的二维棋盘存储皇后。基本逻辑不变&#xff0c;可参见如下代码&#xff1a; #include<cstdio> #include<alg…

Java的深度:通过协方差暴露的API泄漏

Java有时可能非常棘手&#xff0c;特别是在API设计中。 让我们看一个非常有趣的展示柜。 jOOQ强烈地将API与实现分开。 所有API都在org.jooq包中&#xff0c;并且是公共的。 大多数实现都在org.jooq.impl包和package-private中。 只有工厂和一些专用的基础实现是公开的。 这允许…

StringMVC 中如何做数据校验

步骤一&#xff1a;引入四个jar包 步骤二&#xff1a;注册类型转换器 <context:component-scan base-package"cn.happy.controller"></context:component-scan><!-- 配置验证器 --><bean id"myvalidator" class"org.springframe…

ibm+x3650+m4+linux+raid驱动,IBM X3650M4阵列卡驱动下载

ibm X3650M4raid阵列卡驱动适合安装windowsserver2008,windowsserver2008R2,系统问题&#xff0c;服务器问题&#xff0c;可以联系我们也可以到5分享论坛发帖求助。IBM System x3650 M4服务器是一款应用最为广泛的2U机架服务器&#xff0c;支持Xeon E5-2600机架服务器的所有产品…

为什么在Java 6上Math.round(0.499999999999999917)舍入为1

总览 错误表示错误和算术舍入错误有两种类型&#xff0c;它们在浮点计算中很常见。 在此简单示例中&#xff0c;这两个错误组合在一起&#xff0c;在Java 6中Math.round&#xff08;0.4999999999999999999917&#xff09;舍入为1。 表示错误 浮点数是以2为底的格式&#xff0c…

单利模式

class Singleton{ public:static Singleton* GetInstance(){if (m_pInstance nullptr){m_pInstance new Singleton;}return m_pInstance;} private:Singleton(){}//需要将构造和析构定义成私有的防止外界构造和析构~Singleton(){}static Singleton* m_pInstance;//static所有…

C语言switch中break的作用,C语言中switch...case语句中break的重要性

在C语言中switch...case语句是经常用到的&#xff0c;下面我介绍一下在使用该语句时候需要注意的一个细节问题。话不多说&#xff0c;直接举例子&#xff1a;例子1&#xff1a;switch(fruit){case 1:printf("apple"); break;case 2:printf("banana"); brea…

BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]

1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1082 Solved: 602[Submit][Status][Discuss]Description 潘塔纳尔沼泽地号称世界上最大的一块湿地&#xff0c;它地位于巴西中部马托格罗索州的南部地区。每当雨季来临&#xff0c;这里碧波荡漾…

从Spring开始,Java EE 6必须具备哪些附加功能?

我是一名高级Java开发人员&#xff0c;必须研究应用程序架构师选择的技术。 我最多只能表达对特定技术的看法&#xff0c;不能做出/影响技术选择的决定。 因此&#xff0c;在我的正式项目中&#xff0c;我别无选择从Spring迁移到JavaEE6或从JavaEE6迁移到Spring。 我坚信&#…

UML类图与类的关系详解

在画类图的时候&#xff0c;理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现&#xff08;Realization&#xff09;、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation)&#xff0c;合成关系(Composition)。下面我们…

教程:Hibernate,JPA和Spring MVC –第2部分

本教程将向您展示如何使用基本的Hibernate / JPA应用程序&#xff0c;如何将其转换为Spring MVC Web项目&#xff0c;以便能够在Web浏览器中查看数据库&#xff0c;以及最后使用Spring的Transactional注释来减少样板代码。 本教程假定您熟悉Java和Maven&#xff0c;并且已经完成…

算法转换c语言程序,(转)C语言实现卡尔曼滤波算法程序

非常感谢原作者&#xff0c;我在这个的基础上转换成纯整形运算。STM32F103 12位ADC先放大1000倍再运算&#xff0c;理论上可以保留小数点后三位的结果。效果非常不错&#xff0c;运算速度也快&#xff0c;72M时钟 1-2uS左右(根据MDK周期数)。]uint32_t KalmanFilter(int32_t Re…

Java 8的烹调方式–拼图项目

什么是Project Jigsaw&#xff1a;Project Jigsaw是使Java编译器模块知道的项目。 多年以来&#xff0c;Java API一直是整体的&#xff0c;即从代码的任何部分都可以平等地看到整个API。 还没有任何方法可以声明代码对任何其他用户库的依赖关系。 拼图项目试图以非常有效的方式…

python之路-SQLAlchemy

SQLAchemy SQLAlchemy是Python编程语言下的一款ORM框架&#xff0c;该框架建立在数据库API之上&#xff0c;使用关系对象映射进行数据库操作&#xff0c;简言之便是&#xff1a;将对象转换成SQL&#xff0c;然后使用数据API执行SQL并获取执行结果。 安装&#xff1a; pip3 inst…

POJ 1751 Highways

题意&#xff1a;n个城市&#xff0c;然后把n个城市的坐标都给你&#xff0c;然后给你m条已经修好的道路&#xff0c;然后给出m个已经修好道路的城市a&#xff0c;b&#xff0c; However, they want to guarantee that every town is highway-reachable from every other town.…

C语言编程中void什么意思,程序设计中遇到的void到底是什么意思

部分编程的初学者都会问"void是什么意思","为什么很多函数前都要加个void".实际上,void最简单的解释就是把0转换成空类型的意思。下面用各个开发语言来详解void1.C语言中的void表示空类型&#xff0c;它跟int&#xff0c;float是同地位的&#xff0c;一般用…

Linux中vim编辑器的缩进的功能键

vim编程时,经常需要对代码进行缩进处理,以增加程序的可读性和后期的代码维护. 可以采用多种方式达到缩进的目的: 1) 命令模式(command mode) 2) Visual模式&#xff08;visual mode&#xff09; 2) 输入模式(entry mode) 3) 末行模式(last-line mode) 4) 在/etc/vimrc有给予vim…

JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目

本文展示了如何集成JSF2&#xff0c;PrimeFaces3&#xff0c;Spring3和Hibernate4技术。 它为Java开发人员提供了一个通用的项目模板。 另外&#xff0c;如果Spring不用于业务和数据访问层&#xff0c;则可以提供JSF – PrimeFaces和Hibernate集成项目。 二手技术&#xff1a…