主类集合的注解:
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "info", joinColumns = @JoinColumn(name = "user_id"))
@AttributeOverride(name = "listOrder", column = @Column(name = "list_order"))
@OrderBy(clause = "list_order desc")
元素类就是普通的pojo
主类:
@Entity
@Table(name = "users")
public class SysUser implements java.io.Serializable {
private static final long serialVersionUID = -7241872866011395419L;
private String id;
private String userName;
private Integer age;
private List<Event> events = new ArrayList<Event>();
private List<Info> infos = new ArrayList<Info>();
public SysUser() {
}
@GenericGenerator(name = "generator", strategy = "uuid")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, length = 32)
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Column(name = "age", nullable = true)
public Integer getAge() {
return age;
}
@Column(name = "user_name", nullable = true, length = 250)
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setAge(Integer age) {
this.age = age;
}
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
public List<Event> getEvents() {
return events;
}
public void setEvents(List<Event> events) {
this.events = events;
}
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "info", joinColumns = @JoinColumn(name = "user_id"))
@AttributeOverride(name = "listOrder", column = @Column(name = "list_order"))
@OrderBy(clause = "list_order desc")
public List<Info> getInfos() {
return infos;
}
public void setInfos(List<Info> infos) {
this.infos = infos;
}
}
元素类:
public class Info implements Serializable {
private String first;
private String last;
private Integer listOrder;
public Info() {
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getLast() {
return last;
}
public void setLast(String last) {
this.last = last;
}
public Integer getListOrder() {
return listOrder;
}
public void setListOrder(Integer listOrder) {
this.listOrder = listOrder;
}
}