hibernate3.2映射关系(只是基本的关联关系,详细配置需再自行扩展配置,手写的,没实践,如果有问题,请多谢提出!)
以Group - User 为例说明
1.一对多单向关联
Group{
@OneToMany
@JoinColum(name="group_id")// user中生成的数据库字段名
public Set<User> getUser(){
}
}
2.多对一单向关联
User{
@ManyToOne
public Group getGroup(){
}
}
3.一对多和多对一双向关联
Group{
@OneToMany(mappedBy="group")// user类中的group属性
public Set<User> getUser(){
}
}
User{
private Group group;
@ManyToOne
public Group getGroup(){
}
}
4.多对多单向关联
Group{
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="group_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
public Set<User> getUser(){
}
}
或者
User{
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="user_id")},
inverseJoinColumns={@JoinColumn(name="group_id")})
public Set<Group> getGroup(){
}
}
5.多对多双向关联
Group{
private Set<User> users;
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="group_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
public Set<User> getUser(){
}
}
User{
@ManyToMany(mappedBy(name="users"))
public Set<Group> getGroup(){
}
}
以Group - User 为例说明
1.一对多单向关联
Group{
@OneToMany
@JoinColum(name="group_id")// user中生成的数据库字段名
public Set<User> getUser(){
}
}
2.多对一单向关联
User{
@ManyToOne
public Group getGroup(){
}
}
3.一对多和多对一双向关联
Group{
@OneToMany(mappedBy="group")// user类中的group属性
public Set<User> getUser(){
}
}
User{
private Group group;
@ManyToOne
public Group getGroup(){
}
}
4.多对多单向关联
Group{
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="group_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
public Set<User> getUser(){
}
}
或者
User{
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="user_id")},
inverseJoinColumns={@JoinColumn(name="group_id")})
public Set<Group> getGroup(){
}
}
5.多对多双向关联
Group{
private Set<User> users;
@ManyToMany
@JoinTable(name="g_u",
joinColumns={@JoinColum(name="group_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
public Set<User> getUser(){
}
}
User{
@ManyToMany(mappedBy(name="users"))
public Set<Group> getGroup(){
}
}