@XmlTransient
Когда вы помечаете поле / свойство с помощью @XmlTransient, вы явно указываете своей реализации JAXB обрабатывать его как несопоставленное свойство. Это полезно, когда менее половины полей / свойств не сопоставлены.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package blog.unmapped; import java.util.List;import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD)public class Customer { @XmlTransient private int id; private String firstName; private String lastName; private Address billingAddress; private Address shippingAddress; private List<PhoneNumber> phoneNumbers; } |
Если более половины полей / свойств не сопоставлены, то мы прекращаем получать преимущество конфигурации за исключением, поскольку нам нужно проделать больше работы по исключению свойств с @XmlTransient, чем нужно было бы сделать для сопоставления сопоставленных свойств. Далее я продемонстрирую, как мы можем использовать @XmlAccessorType (XmlAccessType.NONE) для этого варианта использования.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package blog.unmapped; import java.util.List;import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD)public class Customer { @XmlTransient private int id; private String firstName; private String lastName; @XmlTransient private Address billingAddress; @XmlTransient private Address shippingAddress; @XmlTransient private List<PhoneNumber> phoneNumbers; } |
@XmlAccessorType (XmlAccessType.NONE)
Установив @XmlAccessorType (XmlAccessType.NONE), мы отключаем конфигурацию в порядке исключения. Теперь будут отображаться только явно сопоставленные свойства. Это полезно, когда отображается менее половины полей / свойств объекта домена.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package blog.unmapped; import java.util.List;import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD)public class Customer { @XmlTransient private int id; private String firstName; private String lastName; @XmlTransient private Address billingAddress; @XmlTransient private Address shippingAddress; @XmlTransient private List<PhoneNumber> phoneNumbers; } |
Дальнейшее чтение
Если вам понравился этот пост, то вам также нравится:
- Использование @XmlAccessorType JAXB для настройки доступа к полю или свойству
- Игнорирование наследования с @XmlTransient
Ссылка: JAXB и Unmapped Properties от нашего партнера JCG Блеза Дафана в блоге Java XML & JSON Binding .