使用jpa注解实现映射组件类型的集合

主类集合的注解:

  @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;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值