Close

JPA - @CollectionTable Examples

JPA JAVA EE 

@Entity
public class Customer {
@Id
@GeneratedValue
private int id;
private String name;
@ElementCollection
@CollectionTable(name = "PHONES", joinColumns = @JoinColumn(name = "CUST_ID"))
@Column(name = "PH_NO")
private List<String> phoneNumbers;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<String> getPhoneNumbers() {
return phoneNumbers;
}

public void setPhoneNumbers(List<String> phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}

@Override
public String toString() {
return "Customer{" +
"id=" + id +
", name='" + name + '\'' +
", phoneNumbers=" + phoneNumbers +
'}';
}
}
Original Post




@Entity
public class Customer {
@Id
@GeneratedValue
private int id;

private String name;
@ElementCollection
@MapKeyColumn(name = "item")
@Column(name = "qty")
@CollectionTable(name = "ITEM_QTY")
private Map<String, Integer> itemQtyMap;
.............
}
Original Post




@Entity
public class Customer {
@Id
@GeneratedValue
private int id;
private String name;
@ElementCollection
@CollectionTable(name = "ORDERS")
@MapKeyColumn(name = "TYPE")
private Map<String, Order> orderMap;
.............
}

@Embeddable
public class Order {
private String item;
private int qty;
private Date date;
.............
}
Original Post




@Entity
public class Customer {
@Id
@GeneratedValue
private int id;
private String name;

@ElementCollection
@CollectionTable(name = "ORDERS", joinColumns = @JoinColumn(name = "CUST_ID"))
@Column(name = "ORDER_TYPE")
private Map<Order, String> orders;
.............
}

@Embeddable
public class Order {
private String item;
private int qty;
private Date date;
.............
}
Original Post

@Entity
public class Employee {
@Id
@GeneratedValue
private long id;
private String name;
@ElementCollection
@CollectionTable(name = "EMP_TASKS", joinColumns = @JoinColumn(name = "EMP_ID"))
@MapKeyJoinColumn(name = "TASK_ID")
@Column(name = "TASK_DATE")
private Map<Task, Date> taskMap;
.............
}

@Entity
public class Task {
@Id
@GeneratedValue
private long id;
private String name;
private String description;
.............
}
Original Post




See Also