Как я могу получить родительское поле в дочернем объекте в manytoone? - PullRequest
0 голосов
/ 20 сентября 2019

Я могу добавить jsonIgnore в Columns.java (дочерний), чтобы остановить бесконечный цикл, но когда я пытаюсь добавить Ignore на родительскую сторону, я получаю

HTTP Status 500 - Couldне записывать JSON: не найден сериализатор для класса org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.Это действительно сбивает с толку, что родительское поле доступно в бесконечном цикле, но после того, как я добавил JsonIgnore к родительскому, оно больше не будет работать.

родительский объект:

@Entity(name = "Project")
    public class Project {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long projId;
    private String projName;

    @ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
    @JoinTable(name = "Project_Resource", joinColumns = {
            @JoinColumn(name = "projId", referencedColumnName = "projId") }, inverseJoinColumns = {
                    @JoinColumn(name = "resId", referencedColumnName = "resId") })
    private Set<Resource> resources = new HashSet<Resource>(0);

    @OneToMany(fetch = FetchType.EAGER, mappedBy="project", cascade = CascadeType.ALL)
    @JsonIgnore
    private Set<Columns> columns;

    public long getProjId() {
        return projId;
    }

    public void setProjId(long projId) {
        this.projId = projId;
    }

    public String getProjName() {
        return projName;
    }

    public void setProjName(String projName) {
        this.projName = projName;
    }

    public Set<Resource> getResources() {
        return resources;
    }

    public void setResources(Set<Resource> resources) {
        this.resources = resources;
    }

    public void setColumns(Set<Columns> columns) {
        this.columns = columns;
    }
    public Set<Columns> getColumns(){
        return this.columns;
    }
}

child:

@Entity(name = "Columns")
public class Columns {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long colId;
    private String colName;
    private String type;

    @ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)

    @JoinColumn(name = "projId",nullable = false)
    private Project project;

    @OneToMany(mappedBy="columns")
    private Set<Block> blocks;

    @OneToOne(mappedBy="columns")
    private Formula formula;
    public Long getColId() {
        return colId;
    }

    public void setColId(Long colId) {
        this.colId = colId;
    }

    public String getColName() {
        return colName;
    }

    public void setColName(String colName) {
        this.colName = colName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...