Use hibernate @OneToOne Mapping to map School class with SchoolTier,
School will be the parent entity as in database this will be the parent table having three foreign key of the child table that is of SchoolTier entity.
This will look like this :
@Entity @Table(name = "school") public class School implements Comparable<School>{ @Transient private int functionValue; @Id @GeneratedValue private Integer id; @Size(min = 3, message = "Name must be at least 3 characters!") @UniqueUsername(message = "School Name already exists!") @Column(length = 1000, unique = true) private String name; //This will create a foreign key of SchoolTier table. @JoinColumn(name = "school_tier_id_1") @OneToOne private SchoolTier schoolTier1; //This will create a foreign key of SchoolTier table. @JoinColumn(name = "school_tier_id_2") @OneToOne private SchoolTier schoolTier2 = new SchoolTier(); //This will create a foreign key of SchoolTier table. @JoinColumn(name = "school_tier_id_3") @OneToOne private SchoolTier schoolTier3; //their getter/setter } SchoolTier will be the child entity in your case.
@Entity @Table(name = "schooltier") public class SchoolTier { @Id @GeneratedValue private Integer id; // Pojo's @Size(min = 0, message = " must be at least 4 characters!") private String CampusImprovement; //getter/setter }