@Entity
public class Student {
private int id;
private String name;
private String gender;
private StuIdCard stuIdCard;
private int age;
@Id
@GeneratedValue
public int getId() {
return id;
}
@Column(name = "name", length = 20)
public String getName() {
return name;
}
@Column(name = "gender", length = 6)
public String getGender() {
return gender;
}
@OneToOne
@JoinColumns( {
@JoinColumn(name = "StuIdCardId", referencedColumnName = "id"),
@JoinColumn(name = "StuIdCardNum", referencedColumnName = "num") })
public StuIdCard getStuIdCard() {
return stuIdCard;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setStuIdCard(StuIdCard stuIdCard) {
this.stuIdCard = stuIdCard;
}
}
package edu.xaut.hibernate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.OneToOne;
@Entity
@IdClass(StuIdCardPk.class)
public class StuIdCard {
private int id;
private String num;
private String color;
private Student student;
@Column(length = 10)
public String getColor() {
return color;
}
@Id
public int getId() {
return id;
}
@Id
@Column(length = 20)
public String getNum() {
return num;
}
@OneToOne(mappedBy = "stuIdCard")
public Student getStudent() {
return student;
}
public void setColor(String color) {
this.color = color;
}
public void setId(int id) {
this.id = id;
}
public void setNum(String num) {
this.num = num;
}
public void setStudent(Student student) {
this.student = student;
}
}
package edu.xaut.hibernate;
import java.io.Serializable;
import javax.persistence.Column;
public class StuIdCardPk implements Serializable {
private int id;
private String num;
public int getId() {
return id;
}
@Column(length = 20)
public String getNum() {
return num;
}
public void setId(int id) {
this.id = id;
}
public void setNum(String num) {
this.num = num;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof StuIdCardPk) {
StuIdCardPk stuIdCard = (StuIdCardPk) obj;
if (this.id == stuIdCard.id && this.num.equals(stuIdCard.num))
return true;
}
return false;
}
@Override
public int hashCode() {
return this.num.hashCode();
}
}
生成的SQL语句如下:
create table StuIdCard (
id integer not null,
num varchar(20) not null,
color varchar(10),
primary key (id, num)
)
create table Student (
id integer not null auto_increment,
age integer not null,
gender varchar(6),
name varchar(20),
StuIdCardId integer,
StuIdCardNum varchar(20),
primary key (id)
)
alter table Student
add index FKF3371A1BDF1F5376 (StuIdCardId, StuIdCardNum),
add constraint FKF3371A1BDF1F5376
foreign key (StuIdCardId, StuIdCardNum)
references StuIdCard (id, num)
近期热议
推荐标签 标签
-
星云链
3 引用 • 16 回帖 • 1 关注
星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网
-
CAP
12 引用 • 5 回帖 • 631 关注
CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。
-
资讯
56 引用 • 85 回帖
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
- 链书
-
友情链接
24 引用 • 373 回帖 • 1 关注
确认过眼神后的灵魂连接,站在链在!
-
BAE
19 引用 • 75 回帖 • 667 关注
百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。
-
OkHttp
16 引用 • 6 回帖 • 85 关注
OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。
-
Python
556 引用 • 675 回帖
Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
-
以太坊
34 引用 • 367 回帖
以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。
-
React
192 引用 • 291 回帖 • 375 关注
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
-
开源
412 引用 • 3588 回帖
Open Source, Open Mind, Open Sight, Open Future!
-
abitmean
• 36 关注
有点意思就行了
-
叶归
7 引用 • 31 回帖 • 18 关注
-
链滴
174 引用 • 3852 回帖
链滴是一个记录生活的地方。
记录生活,连接点滴
-
七牛云
28 引用 • 226 回帖 • 129 关注
七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。
-
面试
325 引用 • 1395 回帖
面试造航母,上班拧螺丝。多面试,少加班。
-
GitLab
46 引用 • 72 回帖
GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。
-
PHP
181 引用 • 408 回帖 • 483 关注
PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。
-
创造
184 引用 • 1018 回帖 • 1 关注
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
-
Linux
952 引用 • 944 回帖
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
-
HTML
108 引用 • 295 回帖
HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。
-
Laravel
20 引用 • 23 回帖 • 741 关注
Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。
-
职场
127 引用 • 1708 回帖
找到自己的位置,萌新烦恼少。
-
Notion
10 引用 • 77 回帖
Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.
-
SQLite
5 引用 • 7 回帖
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。
-
游戏
181 引用 • 821 回帖 • 1 关注
沉迷游戏伤身,强撸灰飞烟灭。
-
uTools
7 引用 • 27 回帖
uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于