我有一个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解决该问题,但这不是很麻烦。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!