使用者資訊表: 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 );