我的数据模型中有很多关系。我一直在尝试使用JAX = B来获取数据模型的XML表示,但是我已经读过一对多的关系:
@XmlInverseReference
映射的反面需要。我相信这是为了使用不同的提取类型(即LAZY和EAGER)。我不确定这个注释是如何工作的。它是否使用后向指针来确保在某些字段上指定数据时不会获取数据?我也不知道是否需要用上述注释来注释我的多对多关系。
这是与自身有多对多关系的用户类,即。用户可以是许多其他用户的朋友。我应该用@XmlInverseReference注释getter吗?
@Entity
@Table(name = "users")
public class User implements Serializable {
...
// bi-directional many-to-many association to User
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE,
CascadeType.REFRESH })
@JoinTable(name = "friends", joinColumns = { @JoinColumn(name = "uid") }, inverseJoinColumns = { @JoinColumn(name = "frienduId") })
private List<User> friends;
/**
* @return
*
* gets the list of users this user is friends with
*/
public List<User> getFriends() {
return this.friends;
}
/**
* @param friendsList
*
* sets the users friends list
*/
public void setFriends(List<User> friendsList) {
this.friends = friendsList;
}
非常感谢任何帮助或指导。
答案 0 :(得分:1)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员。
@XmlInverseReference
是一个EclipseLink JAXB(MOXy)扩展,可以映射双向关系:
@XmlInverseReference
有两个角色:
Foo
和Bar
之间存在双向关系,它会整理Foo
然后Bar
,然后在尝试再次封送Foo
之前停止。