一、创建实体
1.用户表
user(id,userName,userPwd)
2.相册
album(id,uid,name,cover)
二、数据库设计方面
多方建立外键,指向一方,一个用户有多个相册,所以在相册类中建外键。
三、类设计方面
(1)站在用户的角度,每个用户可以有多个相册,通过getAlbums()可以拿到所有相册。
在User这边有一个属性Set<Album> albums=new HashSet<Album>();
注意:new不是必须的,只是new完之后,就可以直接使用getAlbums().add();
(2)站在相册的角度,每个相册对应一个用户,
在Album这边,有一个属性user,可以通过 getUser()拿到对应的用户。
考虑当时我们讲过,有mappedBy的一方,不是维护关系的那一方,而且这一方不会建外键
所以mappedBy这一方应该是User,而Album这一方是维护关系的一方。
四、主要代码
(1)在Album中加入private User user;
@ManyToOne
@JoinColumn(name="uid")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
(2)在User类中加入private Set<Album> albums=new HashSet<Album>();
@OneToMany(mappedBy="user")
public Set<Album> getAlbums() {
return albums;
}
public void setAlbums(Set<Album> albums) {
this.albums = albums;
}