Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAXB如何排除与XmlRootElement类型相同的嵌套类型的封送?_Xml_Jakarta Ee_Jpa_Jaxb_Entity - Fatal编程技术网

JAXB如何排除与XmlRootElement类型相同的嵌套类型的封送?

JAXB如何排除与XmlRootElement类型相同的嵌套类型的封送?,xml,jakarta-ee,jpa,jaxb,entity,Xml,Jakarta Ee,Jpa,Jaxb,Entity,我有这样的实体结构: @XmlRootElement class Provider { @OneToMany Set<ProviderService> providerServices; // other fields and properties } @XmlRootElement class ProviderService { @ManyToOne Provider provider; @ManyToOne S

我有这样的实体结构:

@XmlRootElement
class Provider { 

   @OneToMany 
   Set<ProviderService> providerServices; 

   // other fields and properties 
}

@XmlRootElement 
class ProviderService  { 

   @ManyToOne 
   Provider provider; 
   @ManyToOne 
   Service service; 

   // other fields and properties 
}

@XmlRootElement 
class Service { 

   @OneToMany  
   Set<ProviderService> providerServices; 

   // other fields and properties 
}
@XmlRootElement
类提供程序{
@独身癖
设置提供者服务;
//其他字段和属性
}
@XmlRootElement
类ProviderService{
@许多酮
提供者;
@许多酮
服务;
//其他字段和属性
}
@XmlRootElement
类服务{
@独身癖
设置提供者服务;
//其他字段和属性
}
在编组提供程序实体时,如何防止JAXB生成第二个(相同的)提供程序XML/JSON对象

<provider>
  <!-- somthing --> 

  <provider-service> 
    <provider /> <!-- this repeats the same data as root provider UNWANTED -->  
    <!-- something --> 
    <service /> <!-- this is ok --> 
  </provider-service> 
</provider>

此外,在ProviderService中仅使用@XmlTransient on Provider属性并不是一个解决方案,因为我希望在将服务实体编组为根元素及其ProviderServices列表时生成此Provider元素(在这种情况下,我不希望重复嵌套的服务实体数据)

最好的解决方案是在Provider和Provider上指定根实体@XmlExcludeNestedTypes({Provider.class}) @服务类上的XmlExcludeNestedTypes({Service.class}),但我想这样的注释不存在?此解决方案的任何解决方案可能都会编写一些编组定制