使用一对多hibernate关系Map将java对象转换为json时出错

2wnc66cl  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(150)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

8天前关门了。
改进这个问题
我已经创建了一个hibernate程序与一对多的双向关系,这是工作良好。如果我试图将一个java对象转换成json对象,我会得到一个堆栈溢出错误,下面是我用于一对多双向关系的两个模型类
单位到

@Entity
@Table(name = "Units")
public class UnitDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "UnitID", unique = true, nullable = false)
    private Integer unitID;
    @Column(name = "UnitName", unique = true, nullable = false)
    private String unitName;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "unit")
    private Set<DepartmentDTO> departments = new HashSet<DepartmentDTO>();
}

部门到

@Entity
@Table(name = "Departments")
public class DepartmentDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "DepartmentID", unique = true, nullable = false)
    private Integer departmentID;
    @Column(name = "DepartmentName", unique = true, nullable = false)
    private String departmentName;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "UnitID", nullable = false)
    private UnitDTO unit;
}

我尝试了下面的方法将unitdto java对象转换为json对象,但是出现了堆栈溢出错误

ObjectMapper mapper = new ObjectMapper();
UnitDTO unitDTO = commonMethodService.getEntityByID(UnitDTO.class, rowID);
try {
    String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(unitDTO);
    System.out.println(jsonString);
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

我试图用@jsonignore注解来修复这个错误,但没有成功我的期望是java到json的转换应该在我拉unitdto和departmentdto的时候都能成功

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题