@Entity
@Table(name = "node")
public class Node {
@Id
@Column(name = "id")
private String id;
@Column(name = "name")
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id", referencedColumnName = "id")
private Node parentNode;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "parentNode")
private Set<Node> childNodes;
}