@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Element {
@Id
@GeneratedValue
@Column(name = "`id`")
private Long id;
}
@javax.persistence.Entity
@PrimaryKeyJoinColumn(name="`id`")
public class Entity extends Element {
private String value;
@ManyToMany(cascade = {CascadeType.MERGE,CascadeType.REFRESH} )
@OrderColumn(name="`order`")
private List<Entity> types = new ArrayList<>();
}