Jpa 将临时修饰符添加到非所有者@OneToMany(mappedBy=";)关系
这个问题与此类似/相关,但更具体地说,它关注的是一个非所有的Jpa 将临时修饰符添加到非所有者@OneToMany(mappedBy=";)关系,jpa,gson,ejb,java-ee-6,Jpa,Gson,Ejb,Java Ee 6,这个问题与此类似/相关,但更具体地说,它关注的是一个非所有的@OneToMany关系方。给定以下映射的getter: ... private List<Leaf> leaves; ... @OneToMany(mappedBy = "extkey") @LazyCollection(LazyCollectionOption.TRUE) public List<Leaf> getLeaves() { return leaves; } ... 。。。 私人名单; .
@OneToMany
关系方。给定以下映射的getter:
...
private List<Leaf> leaves;
...
@OneToMany(mappedBy = "extkey")
@LazyCollection(LazyCollectionOption.TRUE)
public List<Leaf> getLeaves() {
return leaves;
}
...
。。。
私人名单;
...
@OneToMany(mappedBy=“extkey”)
@LazyCollection(LazyCollectionOption.TRUE)
公共列表getLeaves(){
还叶;
}
...
在这种情况下,向leaves
字段添加transient
修饰符会有什么影响?
关系是惰性的且“反向的”,即拥有方是
Leaf
object。代码以前是可以工作的,现在看起来仍然可以工作,但我想知道是否有任何不希望的细微副作用,因为transient
在JPA上下文中有一些特殊性。我需要这样做,因为将实体实例传递给外部Gson库会循环和stackoverflow
,我想双向关系会创建一个循环,我可以避免它。谢谢反序列化实体时会产生影响,因为序列化后对象状态将不同
无论如何,您没有指定需要此修饰符的原因。影响将在您反序列化实体时发生,因为序列化后对象状态将不同
无论如何,您没有指定为什么需要这个修饰符。我添加了原因,遗憾的是我无法控制该库,所以这与meNo无关,您没有。我重读了你的问题,没有提到你为什么需要transient。“我需要这个,因为将实体实例传递给外部Gson库会循环和堆栈溢出[…]”你认为不清楚吗?是的,不清楚。什么是Gson lib?什么堆栈溢出错误?为什么瞬变能解决这个问题?听起来您需要类似于
@JsonIgnore
的东西。如果gson中没有这样的注释,您可以使用纯瞬态、@Expose and excludeFieldsWithoutExposeAnnotation()或ExcludeStrategy来完成。有一点时间,第一个是最容易选择的。我补充了原因,遗憾的是我无法控制这个自由,所以这与美诺无关,你没有。我重读了你的问题,没有提到你为什么需要transient。“我需要这个,因为将实体实例传递给外部Gson库会循环和堆栈溢出[…]”你认为不清楚吗?是的,不清楚。什么是Gson lib?什么堆栈溢出错误?为什么瞬变能解决这个问题?听起来您需要类似于@JsonIgnore
的东西。如果gson中没有这样的注释,您可以使用纯瞬态、@Expose and excludeFieldsWithoutExposeAnnotation()或ExcludeStrategy来完成。有一点时间,第一个是最容易选择的