xml - JAXB编码没有为这些域对象返回某些值

标签 xml grails groovy jaxb

我有一个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?")
    }

如您所见,我还有其他一些类(class)来自那里,员工hasmany项目,项目hasmany角色

当我运行此方法时,我得到以下信息:
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中显示大量内容

最佳答案

看来这是一个休眠的延迟加载问题。我试图找出如何在休眠grails配置中关闭整个项目的延迟加载。除非如此,看来我应该可以使用显式的getter / setter解决该问题,但这不是很麻烦。

关于xml - JAXB编码没有为这些域对象返回某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092124/

相关文章:

java - 如何在没有 DOMException 的情况下使用 DOM importNode

grails - 使用SSH将文件从远程服务器复制和解压缩到另一台远程服务器的Grails应用程序

jenkins - Jenkins工作流程结帐访问BRANCH_NAME和GIT_COMMIT

grails - 在 grails 应用程序中使用 spock 验证空白约束的问题

javascript - Sonarqube:为单个多语言项目使用多个自定义质量配置文件......?

ruby - 在 Ruby 中格式化一个 xml 字符串

android - android 中的 XML 布局错误

xml - 为什么 RSS 不能处理符号?

grails - 在多个表单/ Action 之间重用单个CommandObject实例的优点/缺点?

maven - Grails 无法启动,卡在 postProcessBeanFactory