内容简介:在实施@OneToMany双向关系时,有很多方法会搞砸。这里说明一下最佳实践方式:关键点:源代码可以在
在实施@OneToMany双向关系时,有很多方法会搞砸。这里说明一下最佳实践方式:
关键点:
- 始终从父级到子级实现级联
- 在父类上使用mappedBy
- 在父类上使用orphanRemoval以删除父类不再引用的子类
- 在父类上使用helper方法可以使关联的两端保持同步
- 始终使用延迟提取
- 使用自然/业务key或使用实体标识符并覆盖equals(),hashCode()如此 处所示
源代码可以在 这里 找到 。
父类:
@Entity
<b>public</b> <b>class</b> Tournament implements Serializable {
<b>private</b> <b>static</b> <b>final</b> <b>long</b> serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
<b>private</b> Long id;
<b>private</b> String name;
@OneToMany(cascade = CascadeType.ALL,
mappedBy = <font>"tournament"</font><font>, orphanRemoval = <b>true</b>)
<b>private</b> List<TennisPlayer> tennisPlayers = <b>new</b> ArrayList<>();
</font>
子类:
@Entity
<b>public</b> <b>class</b> TennisPlayer implements Serializable {
<b>private</b> <b>static</b> <b>final</b> <b>long</b> serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
<b>private</b> Long id;
<b>private</b> String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = <font>"tournament_id"</font><font>)
<b>private</b> Tournament tournament;
<b>public</b> Long getId() {
<b>return</b> id;
}
<b>public</b> <b>void</b> setId(Long id) {
<b>this</b>.id = id;
}
<b>public</b> String getName() {
<b>return</b> name;
}
<b>public</b> <b>void</b> setName(String name) {
<b>this</b>.name = name;
}
<b>public</b> Tournament getTournament() {
<b>return</b> tournament;
}
<b>public</b> <b>void</b> setTournament(Tournament tournament) {
<b>this</b>.tournament = tournament;
}
@Override
<b>public</b> <b>boolean</b> equals(Object obj) {
<b>if</b> (<b>this</b> == obj) {
<b>return</b> <b>true</b>;
}
<b>if</b> (!(obj instanceof TennisPlayer)) {
<b>return</b> false;
}
<b>return</b> id != <b>null</b> && id.equals(((TennisPlayer) obj).id);
}
@Override
<b>public</b> <b>int</b> hashCode() {
<b>return</b> 2018;
}
}
</font>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
爆款:如何打造超级IP
【美】安妮塔•埃尔伯斯 / 杨雨 / 中信出版社 / 2016-1-10 / 49
哈佛商学院IP运营与产品管理方法论第一书,翻转长尾理论的重要著作! 电影大片、当红炸子鸡、百万畅销书背后的运营逻辑是什么? 《五十度灰》、Lady Gaga、维多利亚的秘密有何共同秘密? 漫威如何将蜘蛛侠、X战警、绿巨人打造成金矿? 皇马如何打造体育IP,一跃成为全球收 入最高的足球俱乐部? 爆款策略如何运用于电影、电视、音乐、出版、体育与商业各领域? ----......一起来看看 《爆款:如何打造超级IP》 这本书的介绍吧!
MD5 加密
MD5 加密工具
HSV CMYK 转换工具
HSV CMYK互换工具