@Entity
@Table(name = "animal")
public class Animal implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "name", nullable = false, unique = true)
private String name;
@Column(name = "ukey", unique = true)
private String key;
@ManyToMany
@JoinTable(
name = "relatives",
joinColumns = @JoinColumn(name = "ukey1", referencedColumnName = "ukey"),
inverseJoinColumns = @JoinColumn(name = "ukey2", referencedColumnName = "ukey")
)
private Set<Animal> relatives;
}