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.pswp.cn/news/373144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373144.shtml
英文地址,請注明出處:http://en.pswp.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…