欢迎来到天天文库
浏览记录
ID:40554957
大小:15.19 KB
页数:3页
时间:2019-08-04
《hibernate的_CascadeType属性说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Order实体@Entity@Table(name="orders")publicclassOrder{ //1-m,多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端没有权利更新外键记录 privateStringorderid; privateFloatamount; privateSetitems=newHashSet(); @Id@Column(length=12) publicStringgetOrderid(){ retu
2、rnorderid; } publicvoidsetOrderid(Stringorderid){ this.orderid=orderid; } @Column(nullable=false) publicFloatgetAmount(){ returnamount; } publicvoidsetAmount(Floatamount){ this.amount=amount; } @OneToMany(cascade={CascadeType.REFRESH,CascadeType.P
3、ERSIST,CascadeType.REMOVE,CascadeType.MERGE},fetch=FetchType.LAZY,mappedBy="order")//出现mapby为被维护端
4、
5、
6、默认为延迟加载 publicSetgetItems(){ returnitems; } publicvoidsetItems(Setitems){ this.items=items; } publicvoidaddOrderItem(OrderItem
7、orderItem){ orderItem.setOrder(this); this.items.add(orderItem); }} OrderItem实体@EntitypublicclassOrderItem{ privateIntegerid; privateStringproductName; privateFloatsellPrice=0f; privateOrderorder; @Id@GeneratedValue publicIntegergetId(){ return
8、id; } publicvoidsetId(Integerid){ this.id=id; } @Column(length=40,nullable=false) publicStringgetProductName(){ returnproductName; } publicvoidsetProductName(StringproductName){ this.productName=productName; } @Column(nullable=false) publicFloatge
9、tSellPrice(){ returnsellPrice; } publicvoidsetSellPrice(FloatsellPrice){ this.sellPrice=sellPrice; } @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=true) @JoinColumn(name="order_id") publicOrdergetOrder(){ returnorder; } publi
10、cvoidsetOrder(Orderorder){ this.order=order; }} CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体,为了用户取到的数据是实时的,在用实体中的数据之前就可以调用一下refresh()方法! CascadeType.REMOVE:级联删除,当调用remove()方法删除Order实体时会先级联删除OrderItem的相关数据! CascadeType.MERGE:级联更新,当调用了Merge()方法,如果Order中的数据
11、改变了会相应的更新OrderItem中的数据, CascadeType.ALL:包含以上所有级联属性。 (注:以上几种级联操作,只能实在满足数据库的约束时才能生效,比如上边的Order和OrderItem存在主外键关联所以执行REMOVE()方法时是不能实现级联删除的)CascadeType.PERSIST:级联保存,当调用了Persist()方法,会级联保存相应的数据 Fetch抓取是否延迟加载,默认情况一的方为立即加载,多的一方为延迟加载mappedBy关系维护mappedBy="order
此文档下载收益归作者所有