Entity-relationship diagram:
I want to receive a translation, but the element will link back to translation.
So it will crash because it keeps looping..
Translation entity:
package com.exstodigital.photofactory.model;
import javax.persistence.*;
import java.io.Serializable;
/**
 * Created by youri on 21-09-16.
 */
@Table(name = "translation")
@Entity
public class Translation implements Serializable {
    @Id
    @GeneratedValue
    private int id;
    public int getId() {
        return id;
    }
    private String text;
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    @OneToOne
    @JoinColumn(name = "language_id")
    private Language language;
    public Language getLanguage() {
        return language;
    }
    @OneToOne
    @JoinColumn(name = "element_id")
    private Element element;
    public Element getElement() {
        return element;
    }
    public Translation(int id, String text) {
        this.id = id;
        this.text = text;
    }
    public Translation() {
        // Empty constructor
    }
    @Override
    public boolean equals(Object obj) {
        return obj instanceof Translation && (!this.text.equals(((Translation) obj).text));
    }
}
Element entity:
package com.exstodigital.photofactory.model;
import javax.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
 * Created by youri on 21-09-16.
 */
@Entity
@Table(name = "element")
public class Element implements Serializable {
    @Id
    @GeneratedValue
    private int id;
    public int getId() {
        return id;
    }
    private String label;
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    @OneToMany
    @JoinColumn(name = "element_id")
    private List<Translation> translations = new ArrayList<>();
    public List<Translation> getTranslations() {
        return Collections.unmodifiableList(translations);
    }
    public Element(int id, String label) {
        this.id = id;
        this.label = label;
    }
    public Element() {
        // Empty constructor
    }
    @Override
    public boolean equals(Object obj) {
        return obj instanceof Element && (this.id != ((Element) obj).id || !this.label.equals(((Element) obj).label));
    }
}
TranslationDaoImpl:
@Override
public Translation get(int id) {
    return sessionFactory.openSession().get(Translation.class, id);
}

 
    