JPA JAVA EE
@JoinTable can be used to map following associations to database table: bidirectional many-to-one/one-to-many, unidirectional many-to-one, and one-to-one (both bidirectional and unidirectional) associations.
 import javax.persistence.*; import java.util.List;
@Entity public class EntityA { @Id @GeneratedValue private int myIdA; @OneToMany @JoinTable(name = "MY_JOIN_TABLE", joinColumns = {@JoinColumn(name = "MY_ENTITY_A_FK")}, inverseJoinColumns = {@JoinColumn(name = "MY_ENTITY_B_FK")} ) private List<EntityB> entityBList;
public List<EntityB> getEntityBList() { return entityBList; }
public void setEntityBList(List<EntityB> entityBList) { this.entityBList = entityBList; }
@Override public String toString() { return "EntityA{" + "myIdA=" + myIdA + ", entityBList=" + entityBList + '}'; } }
Original Post
 @Entity public class EntityA { @Id @GeneratedValue private int myIdA; private String strA; @OneToMany @JoinTable(name = "MY_JOIN_TABLE", joinColumns = {@JoinColumn(name = "MY_ENTITY_A_FK", referencedColumnName = "myIdA")}, inverseJoinColumns = {@JoinColumn(name = "MY_ENTITY_B_FK", referencedColumnName = "myIdB")} ) private List<EntityB> entityBList;
public String getStrA() { return strA; }
public void setStrA(String strA) { this.strA = strA; }
public List<EntityB> getEntityBList() { return entityBList; }
public void setEntityBList(List<EntityB> entityBList) { this.entityBList = entityBList; }
@Override public String toString() { return "EntityA{" + "myIdA=" + myIdA + ", strA='" + strA + '\'' + '}'; } }
 @Entity public class EntityB { @Id @GeneratedValue private int myIdB; private String strB; @ManyToOne @JoinTable(name = "MY_JOIN_TABLE", joinColumns = {@JoinColumn(name = "MY_ENTITY_B_FK", insertable = false, updatable = false, referencedColumnName = "myIdB")}, inverseJoinColumns = {@JoinColumn(name = "MY_ENTITY_A_FK", insertable = false, updatable = false, referencedColumnName = "myIdA")} ) private EntityA refEntityA;
public String getStrB() { return strB; }
public void setStrB(String strB) { this.strB = strB; }
public EntityA getRefEntityA() { return refEntityA; }
public void setRefEntityA(EntityA refEntityA) { this.refEntityA = refEntityA; }
@Override public String toString() { return "EntityB{" + "myIdB=" + myIdB + ", strB='" + strB + '\'' + '}'; } }
Original Post
@OneToOne unidirectional with @JoinTable:  @Entity public class EntityA { @Id @GeneratedValue private int myIdA; private String stringA; @OneToOne @JoinTable(name = "MY_JOIN_TABLE", joinColumns = { @JoinColumn(name = "ENTITYA_FK", referencedColumnName = "myIdA") }, inverseJoinColumns = { @JoinColumn(name = "ENTITYB_FK", referencedColumnName = "myIdB", unique = true) } ) private EntityB entityB; ............. }  @Entity public class EntityB { @Id @GeneratedValue private int myIdB; private String stringB; ............. } Original Post
@OneToOne bidirectional with @JoinTable:  @Entity public class EntityA { @Id @GeneratedValue private int myIdA; private String stringA; @OneToOne @JoinTable(name = "MY_JOIN_TABLE", joinColumns = { @JoinColumn(name = "ENTITYA_FK", referencedColumnName = "myIdA") }, inverseJoinColumns = { @JoinColumn(name = "ENTITYB_FK", referencedColumnName = "myIdB", unique = true) } ) private EntityB entityB; ............. }  @Entity public class EntityB { @Id @GeneratedValue private int myIdB; private String stringB;
@OneToOne(mappedBy = "entityB") private EntityA entityA; ............. } Original Post
 @Entity public class Employee { @Id @GeneratedValue private long id; private String name; @OneToMany @JoinTable(name = "ASSIGNED_TASKS", joinColumns = {@JoinColumn(name = "EMPLOYEE_FK")}, inverseJoinColumns = {@JoinColumn(name = "TASK_FK")}) @MapKeyColumn(name = "TASK_DATE") private Map<Date, Task> tasks; ............. }  @Entity public class Task { @Id @GeneratedValue private long id; private String name; private String description; ............. } Original Post
|
|