循环检测,XmlTransient和解组

时间:2014-04-26 19:26:10

标签: java jaxb

我有两节课:

餐厅

public class Restaurant implements Serializable {

    @Id
    @GeneratedValue
    private long id;
    ...
    @OneToMany(mappedBy = "restaurant", fetch = FetchType.EAGER)
        private Set<Comment> comments;
}

注释

public class Comment implements BasicVO, Serializable {

    @Id
    @GeneratedValue
    private long id;
    ...

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "restaurant_id", referencedColumnName = "id")
    private Restaurant restaurant;

    @XmlTransient
    public Restaurant getRestaurant() {
        return restaurant;
    }
}

我使用注释@XmlTransient来防止“编组错误:在对象图中检测到一个循环。”,但是如何在评论类中检索有关餐厅字段的信息呢?当我尝试通过WebService传递Comment对象时,关于餐馆的信息当然丢失了(因为XmlTransient)。我怎样才能获得这些信息?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以通过id找到评论。

例如 Restaurant restaurant = entityManager.getReference(Comment.class, id).getRestaraunt();

当然,它需要服务器端的一些逻辑。