Hibernate中Many的属性mappedBy小结
来源:互联网 发布:retrofit java 编辑:程序博客网 时间:2024/06/05 20:55
对于mappedBy小结
======引用网上:
a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
b) mappedBy标签一定是定义在the owned side(被拥有方的),他指向the owning side(拥有方);
c) mappedBy的含义,应该理解为,拥有方能够自动维护 跟被拥有方的关系;
当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的。
d) mappedBy跟JoinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被 拥有方。mappedBy这方定义的JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表
======
附加:
有两个类(两张表)Group和User,一个组中可以有多个用户,一个用户只属于一个组,ManyToOne;
两个类中代码如下:
Group类中User类中@Entity@Table(name="t_Group")
public class Group {
private int id;
private String name;
private Set<User> users = new HashSet<User>();
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToMany(mappedBy="group")
public Set<User> getUsers() {
return users;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setUsers(Set<User> users) {
this.users = users;
}
}@Entity
@Table(name="t_User")
public class User {
private int id;
private String name;
private Group group;
@ManyToOne
public Group getGroup() {
return group;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setGroup(Group group) {
this.group = group;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
@OneToMany(mappedBy="group")
public Set<User> getUsers() {
return users;
}
结果如下:
drop table if exists t_Group
drop table if exists t_User
create table t_Group (
id integer not null auto_increment,
name varchar(255),
primary key (id)
)
create table t_User (
id integer not null auto_increment,
name varchar(255),
group_id integer,
primary key (id)
)
alter table t_User
add index FKCB5540D6E7CDA67A (group_id),
add constraint FKCB5540D6E7CDA67A
foreign key (group_id)
references t_Group (id)
Hibernate:
insert
into
t_Group
(name)
values
(?)
Hibernate:
insert
into
t_User
(group_id, name)
values
(?, ?)总结规律为:
凡是双向关联,必设MappedBy。
- Hibernate中Many的属性mappedBy小结
- Hibernate 注解的mappedby属性
- hibernate中mappedby的理解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate注解属性mappedby的详解
- hibernate注解属性 Mappedby、cascade 的使用
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate mappedBy属性详解!
- Hibernate之mappedBy属性详解
- hibernate的注解属性mappedBy详解
- Hibernate中,mappedBy和注解@JoinColumn的对比
- Hibernate中,mappedBy和注解@JoinColumn的对比
- Hibernate中mappedBy和@JoinColumn二者的使用心得
- Hibernate中@OneToMany与ManyToOne的mappedBy和@JoinColumn区别
- [Win32]Win32网络小结
- httphandler vs httpmodule
- Permutation Sequence
- err:module:import_dll Library MSVCP90.dll
- 使用Linux C开发Nagios监控插件系列——监控MySQL状态的插件开发
- Hibernate中Many的属性mappedBy小结
- jquery或者js怎么获取url传过来的参数值
- linux 脚本学习
- android主流UI布局
- 程序流程控制
- 程序员的职业习惯
- U-Boot 配置、编译、链接过程
- 善用佳软--收集
- 解析Android中的XML