| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > JAXB @XmlTransient не работает |
| Автор: Gladkiy 10.3.2011, 12:42 | ||||||||||
| Доброго времени суток. Использую для создания репрезентации java классов в XML стандартный фрейморк JAXB. При аннотировании приватного поля с помощью @XmlTransient содержимое поля все равно мапится в выходной XML. Например: Абстрактный класс А
его наследуют классы В
и С, в котором есть отмеченное с помощью @XmlTransient поле.
В классе D создаются экземпляры:
Main class
В итоговом XML все равно присутствуют данные отмеченные как @XmlTransient <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<d>-<propertyB><age>10</age><name>name = B</name></propertyB>-<propertyC><age>50</age><name>name = C</name></propertyC></d> Что было попробовано: 1. В классе С и D изменялся тип доступа к данным с помощью @XmlAccessorType(XmlAccessType.FIELD). Были добавлены еще лишние поля. 2. Отмечались getter/setter в нужном классе как @XmlTransient. Привело к ошибке аннотаций. 3. В классе D поле propertyC изменялось на private и создавались getter/setter. Может кто знает как с этим бороться? Я буду премного благодарен. |
| Автор: MisterCleric 10.3.2011, 12:46 | ||
| Привет. Поставь такое на коренном классе:
Добавлено через 50 секунд в смысле в твоей иерархии, а не классе D, хотя там тоже не помешает |
| Автор: Gladkiy 10.3.2011, 16:00 |
| Помогло. Добавил @XmlAccessorType(XmlAccessType.FIELD) в абстрактный класс А. Раннее при добалении в класс D такого эффекта не было. Спасибо тебе добрый человек. |