Маршаллинг JAXB не возвращает некоторые значения для этих объектов домена - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть класс домена Role, который я упростил, чтобы проиллюстрировать случай здесь:

@XmlRootElement(name="Role")
@XmlAccessorType(XmlAccessType.NONE) 
public class Role implements Comparable
{
    @XmlElement
    String title = ""
}

У меня есть некоторый код для проверки маршалинга этого класса домена:

try {
        employee.getProjects().each{ proj -> 
            println "Project name :" + proj.name
            proj.getRoles().each{

                println ("Role title:" + it.title)
                context = JAXBContext.newInstance(Role.class);
                Marshaller m = context.createMarshaller();
                m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                m.marshal ((Role)it, System.out)

            }
        }

    }catch (JAXBException e){
        e.printStackTrace();
        println(e.getCause())
        println ("Ever getting here?")
    }

Как вы можете видеть, у меня есть другие классы, из которых это происходит, сотрудники имеют много проектов, проект имеют много ролей

когда я запускаю этот метод, я получаю следующее:

Project name :Project 1
Role title:Software Engineer1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
    <title></title>
</Role>
Project name :Project 2
Role title:Software Engineer2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
    <title></title>
</Role>
Project name :Project 3
Role title:Software Engineer3
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
    <title>Software Engineer3</title>
</Role>

Что здесь происходит?Это сводит меня с ума от того, что он точно знает, что это маршаллинг заголовка, а значения есть - я могу их ПЕЧАТЬ, но они не отображаются в XML

1 Ответ

2 голосов
/ 04 ноября 2010

Казалось бы, это спящая проблема с отложенной загрузкой.Я пытаюсь выяснить, как отключить отложенную загрузку для всего проекта в конфигурации Hibernate Grails.За исключением этого, мне кажется, что я смогу обойти проблему, используя явные методы получения / установки, но это не очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...