我有一个从现有数据库表在Netbeans中生成的用户实体。该表有一个用户实体列lastUpdatedByUser。此数据库中的大多数表都有一个lastUpdatedByUser列,并且针对这些实体的查询正确返回一个用户对象作为结果的一部分。JPA递归实体StackOverflowError
Ex。检索FROM ProductionTable WHERE date ='someDate'有一个lastUpdatedByUser对象,显示谁最后更新了表格行和其他用户属性。
如果在web-app中编辑productionTable数据并提交,我需要更新lastUpdatedByUser列。
Users userUpdating = usersService.selectUserEntityByUserId(userId);
Users userEntity = usersFacade.findSingleWithNamedQuery("Users.findByUserId", parameters);
SELECT u FROM Users u WHERE u.userId = :userId
返回一个包含lastUpdatedByUser这是一个User对象包含lastUpdatedByUser这是一个用户对象,它包含一个lastUpdatedByUser对象的用户对象....(我不知道有多少,二十这些行加起来)
后,我坚持这个
productionEntity.setLastUpdatedByUser(userUpdating);
我得到的Json的StackOverflowError在更新实体
下一个请求的用户实体定义:
@OneToMany(mappedBy = "lastUpdatedByUser")
private Collection<Users> usersCollection;
@JoinColumn(name = "LastUpdatedByUser", referencedColumnName = "UserId")
@ManyToOne
private Users lastUpdatedByUser;
@OneToMany(mappedBy = "lastUpdatedByUser")
private Collection<Production> productionCollection;
如何修改,这样,我继续得到用户实体用户对象像生产其他实体的一部分,但只有一个lastUpdatedByUser对象?
感谢您的任何见解。