Java jaxb@ManyToMany@XmlID@XmlIDREF可以';t将引用的对象放入xml中
嗨,我在使用Web服务时遇到了一个问题 我有一个包含许多角色的对象用户 当我从包含角色的Web服务中获得一个用户(Id:3)时,该角色包含多个用户(Id:3和Id:2)。我犯了个错误 原因:javax.xml.bind.UnmarshaleException:未定义的ID“2” 我假设这是由于id为2的用户不在xml中 我的问题是如何将这个用户填充到xml中Java jaxb@ManyToMany@XmlID@XmlIDREF可以';t将引用的对象放入xml中,java,web-services,jaxb,cxf,Java,Web Services,Jaxb,Cxf,嗨,我在使用Web服务时遇到了一个问题 我有一个包含许多角色的对象用户 当我从包含角色的Web服务中获得一个用户(Id:3)时,该角色包含多个用户(Id:3和Id:2)。我犯了个错误 原因:javax.xml.bind.UnmarshaleException:未定义的ID“2” 我假设这是由于id为2的用户不在xml中 我的问题是如何将这个用户填充到xml中 @XmlRootElement() public class User implements UserInterface { @
@XmlRootElement()
public class User implements UserInterface {
@Override
@GeneratedValue
@Id
@XmlID
@XmlJavaTypeAdapter(IntegerAdapter.class)
public Integer getId() {
return id;
}
@Override
@ManyToMany(targetEntity=Role.class,fetch=FetchType.EAGER)
@XmlElement(type=Role.class)
public Set<RoleInterface> getRoles() {
return roles;
}
}
@XmlRootElement()
public class Role implements RoleInterface {
@ManyToMany(targetEntity=User.class,fetch=FetchType.EAGER)
@XmlIDREF
@XmlList
public Set<UserInterface> getUsers() {
return users;
}
}
@XmlRootElement()
公共类用户实现用户接口{
@凌驾
@生成值
@身份证
@XmlID
@XmlJavaTypeAdapter(IntegerAdapter.class)
公共整数getId(){
返回id;
}
@凌驾
@ManyToMany(targetEntity=Role.class,fetch=FetchType.EAGER)
@XmlElement(类型=Role.class)
公共集getRoles(){
返回角色;
}
}
@XmlRootElement()
公共类角色实现RoleInterface{
@ManyToMany(targetEntity=User.class,fetch=FetchType.EAGER)
@XmlIDREF
@XML列表
公共集getUsers(){
返回用户;
}
}
为了使用@XmlIDREF
引用的对象还必须通过某种包含关系进行映射,例如@xmlement
了解更多信息
根元素开始。您应该从中删除@XmlRootElement
。请发布导致问题的XML和完整异常堆栈。