用户信息表: User
@Entity @Table(name="users") @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String username; private String password;
用户账号表 Account
@Entity public class Account { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private long id; private float money; @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="user_id") private User user;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="user_id")
private User user;
注意 JoinColumn 指的是 account表中的外键的字段名称, 该注解只能用JoinColumn 而不能用Column
对应的数据库(Hsqldb)中的表结构如下:
drop table users if exists; create table users ( ID BIGINT GENERATED BY DEFAULT AS IDENTITY (start with 1), USERNAME VARCHAR(20) not null, PASSWORD VARCHAR(20) not null, AGE INT, BIRTHDAY TIMESTAMP, DESCRIB VARCHAR(20), PHOTO VARCHAR(20) ); alter table users add constraint users_pk primary key(id); drop table account if exists; create table account( ID BIGINT GENERATED BY DEFAULT AS IDENTITY (start with 1), user_id bigint not null, money float );