向非所有权@OneToMany(mappedBy =“”)关系中添加瞬态修饰符

时间:2019-04-17 17:38:55

标签: jpa gson ejb java-ee-6

该问题与此other类似/相关,但更具体地侧重于非所有权@OneToMany关系方面。给定以下映射的getter:

...
private List<Leaf> leaves;
...
@OneToMany(mappedBy = "extkey")
@LazyCollection(LazyCollectionOption.TRUE)
public List<Leaf> getLeaves() {
    return leaves;
}
...

在这种情况下,将transient修饰符添加到leaves字段会产生什么影响?

该关系是惰性的并且是“反向的”,即拥有方是Leaf对象。该代码以前曾经工作过,现在看起来仍然可以工作,但是我想知道是否有任何不希望出现的细微副作用,因为transient在JPA上下文中有一些特殊之处。我需要这样做,因为将实体实例传递到外部Gson lib会循环并stackoverflow,因为双向关系会创建一个循环,因此我可以避免使用using transient字段。谢谢

1 个答案:

答案 0 :(得分:0)

当您反序列化实体时会产生影响,因为序列化后对象状态会有所不同。

无论如何,您没有指定为什么需要此修饰符。