栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有共享ID的JPA @OneToOne —我可以做得更好吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有共享ID的JPA @OneToOne —我可以做得更好吗?

要使用共享主键映射一对一关联,请使用

@PrimaryKeyJoinColumn
@MapsId
注释。

Hibernate参考文档的相关部分:

PrimaryKeyJoinColumn

PrimaryKeyJoinColumn注释确实表示该实体的主键用作关联实体的外键值。

MapsId

MapsId注释要求Hibernate从另一个关联的实体复制标识符。在Hibernate行话中,它被称为外来生成器,但JPA映射读起来更好,值得鼓励

人.java

@Entitypublic class Person {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Column(name = "person_id")    private Long id;    @oneToOne(cascade = CascadeType.ALL)    @PrimaryKeyJoinColumn    private VitalStats vitalStats;       }

VitalStats.java

@Entitypublic class VitalStats {    @Id @Column(name="vitalstats_id") Long id;    @MapsId     @oneToOne(mappedBy = "vitalStats")    @JoinColumn(name = "vitalstats_id")   //same name as id @Column    private Person person;    private String stats;}

人员数据库表

CREATE TABLE  person (  person_id   bigint(20) NOT NULL auto_increment,  name        varchar(255) default NULL,  PRIMARY KEY  (`person_id`))

VitalStats数据库表

CREATE TABLE  vitalstats (  vitalstats_id  bigint(20) NOT NULL,  stats          varchar(255) default NULL,  PRIMARY KEY  (`vitalstats_id`))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号