Onetoone: One-way
1, primary Key association:
Use @onetoone in association
SQL statements: (class code See the same code as before)
Java code
create table A (id integer not null auto_increment, aname varchar(255), b_id integer, primary key (id))
create table B (id integer not null auto_increment, bname varchar(255), primary key (id))
alter table A add index FK41FCD34905 (b_id), add constraint FK41FCD34905 foreign key (b_id) references B (id)
Can be associated by using @primarykeyjoincolumn
2 bidirectional:
Used in the associated party
@OneToOne (Cascade=cascadetype.all)
@JoinColumn (name= "B")
Used by the associated party
@OneToOne (mappedby= "B")
Final sql:
Java codecreate table A (id integer not null auto_increment, aname varchar(255), b integer, primary key (id))
create table B (id integer not null auto_increment, bname varchar(255), primary key (id))
alter table A add index FK41FCA54B4F (b), add constraint FK41FCA54B4F foreign key (b) references B (id)
If you do not write
@OneToOne (mappedby= "B") will also generate a field in the association
Final code:
Java code
create table A (id integer not null auto_increment, aname varchar(255), i_id integer, primary key (id))
create table B (id integer not null auto_increment, bname varchar(255), a_id integer, primary key (id))
alter table A add index FK41FCD6779E (i_id), add constraint FK41FCD6779E foreign key (i_id) references B (id)
alter table B add index FK42FCD2D4A5 (a_id), add constraint FK42FCD2D4A5 foreign key (a_id) references A (id)
If you do not write @joincolumn (name= "B"), the default is the associated property name + underscore +id
Final sql:
Java code
create table A (id integer not null auto_increment, aname varchar(255), b_id integer, primary key (id))
create table B (id integer not null auto_increment, bname varchar(255), primary key (id))
alter table A add index FK41FCD34905 (b_id), add constraint FK41FCD34905 foreign key (b_id) references B (id)
You can use @joincolumn (referencedcolumnname= "bname") to let the primary association not associate the primary key that is placed by the association
Final SQL
Java code
create table A (id integer not null auto_increment, aname varchar(255), b_bname varchar(255), primary key (id))
create table B (id integer not null auto_increment, bname varchar(255), primary key (id), unique (bname))
alter table A add index FK41E47CD6BD (b_bname), add constraint FK41E47CD6BD foreign key (b_bname) references B (bname)