弱问?
hibernate中提到的一对一单向外键关联和一对一双向外键关联,这个单向和双向怎么理解啊?最好给个例子。谢谢
hibernate中提到的一对一单向外键关联和一对一双向外键关联,这个单向和双向怎么理解啊?最好给个例子。谢谢
解决方案 »
- java.util.Date类的日期时间相减
- struts2 中Action 接收页面以get形式传过来的参数,中文乱码?怎么解决
- 向大家征集建议:程序员该如何走向架构师
- 导入 struts后 发布失败
- JAVA初学者学习道路的困惑!!希望有经验的程序员们为我解答~~
- 服务器项目中Hibernate这样配置正确么,为什么我的jsp项目过段时间就出错呢
- javabean和servlet有什么区别
- 一个小问题!(简单的编译问题)
- 关于business delegate和facade的区别?
- 什么工具可以根据设计设计好的ER图,导出java的model类。
- 这个标签有误吗,为什么报错
- 求jbpm实例,大牛们帮帮忙吧!
public class Husband {
private int id;
private String name;
private Wife wife;
@OneToOne
public Wife getWife() {
return wife;
}
.....然后建立另一个类@Entity
public class Wife {
private int id;
private String name;
private Husband husband;
@OneToOne
public Husband getHusband() {
return husband;
}
public void setHusband(Husband husband) {
this.husband = husband;
}
......这两个类都有对方的引用.就构成了多对多的条件.运行自动建表程序(同一对一单向外键关联),看结果11:46:35,718 DEBUG SchemaExport:377 -
create table Husband (
id number(10,0) not null,
name varchar2(255),
wife_id number(10,0),
primary key (id)
)
11:46:35,750 DEBUG SchemaExport:377 -
create table Wife (
id number(10,0) not null,
name varchar2(255),
husband_id number(10,0),
primary key (id)
)
11:46:35,765 DEBUG SchemaExport:377 -
alter table Husband
add constraint FKAEEA401B74A158F3
foreign key (wife_id)
references Wife
11:46:35,781 DEBUG SchemaExport:377 -
alter table Wife
add constraint FK292331AE37DC61
foreign key (husband_id)
references Husband
11:46:35,796 DEBUG SchemaExport:377 -
create sequence hibernate_sequence
11:46:35,812 INFO SchemaExport:268 - schema export complete可以看到建立了两张表,同时两张表都建立了外键的关联.但是这样造成冗余,关键是更新表记录的时候麻烦,因为你还要互相考虑到关联性,所以一般是一个表建立了外键就行.那么怎么实现?看例子修改其中某个类的get方法,以wife类为例,修改如下public class Wife {
private int id;
private String name;
private Husband husband;
@OneToOne(mappedBy="wife")
public Husband getHusband() {
return husband;
}...这段话的具体理解是,首先Wife这个类是与Husband类做一对一关联的,同时是以Husband类里面的getWife()这个属性来做maping的,做映射的.这个时候,就只在husband表生成外键.(简单理解,两个类的外键关联,以一个类为准,只在husband表生成外键,wife表不需要生成外键)看结果11:58:01,343 DEBUG SchemaExport:377 -
create table Husband (
id number(10,0) not null,
name varchar2(255),
wife_id number(10,0),
primary key (id)
)
11:58:01,375 DEBUG SchemaExport:377 -
create table Wife (
id number(10,0) not null,
name varchar2(255),
primary key (id)
)
11:58:01,453 DEBUG SchemaExport:377 -
alter table Husband
add constraint FKAEEA401B74A158F3
foreign key (wife_id)
references Wife
11:58:01,468 DEBUG SchemaExport:377 -
create sequence hibernate_sequence
11:58:01,468 INFO SchemaExport:268 - schema export complete
你的例子就是双向关联的吧,主表类和从表类都有对方的对像,就是双向关联吗?