generated from Java-2025Fall/final-vibevault-template
更新 src/main/java/com/vibevault/model/Song.java
This commit is contained in:
parent
ac12b72751
commit
e520acabf9
@ -4,14 +4,18 @@ import jakarta.persistence.*;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 歌曲实体类
|
* 歌曲实体类
|
||||||
*
|
*
|
||||||
* 需要实现:
|
* 需要实现:
|
||||||
* - 将此类映射为数据库表 "songs"
|
* - 将此类映射为数据库表 "songs"
|
||||||
* - id 作为自增主键
|
* - id 作为自增主键
|
||||||
* - 每首歌曲属于一个歌单(多对一关系)
|
* - 每首歌曲属于一个歌单(多对一关系)
|
||||||
*/
|
*/
|
||||||
|
@Entity // 实现:将此类映射为数据库表
|
||||||
|
@Table(name = "songs") // 实现:指定表名为"songs"
|
||||||
public class Song {
|
public class Song {
|
||||||
|
|
||||||
|
@Id // 实现:标记id为主键
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY) // 实现:id作为自增主键
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
private String title;
|
private String title;
|
||||||
@ -20,33 +24,63 @@ public class Song {
|
|||||||
|
|
||||||
private int durationInSeconds;
|
private int durationInSeconds;
|
||||||
|
|
||||||
|
// 实现:每首歌曲属于一个歌单(多对一关系)
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY, optional = false) // 多对一,歌单不能为空
|
||||||
|
@JoinColumn(name = "playlist_id") // 数据库中关联歌单的字段名
|
||||||
private Playlist playlist;
|
private Playlist playlist;
|
||||||
|
|
||||||
|
// JPA必须的无参构造(protected改为public,方便测试)
|
||||||
public Song() {
|
public Song() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 适配测试代码的构造方法(不带Playlist参数)
|
||||||
public Song(String title, String artist, int durationInSeconds) {
|
public Song(String title, String artist, int durationInSeconds) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.artist = artist;
|
this.artist = artist;
|
||||||
this.durationInSeconds = durationInSeconds;
|
this.durationInSeconds = durationInSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 业务用的构造方法(带Playlist参数)
|
||||||
|
public Song(String title, String artist, int durationInSeconds, Playlist playlist) {
|
||||||
|
this.title = title;
|
||||||
|
this.artist = artist;
|
||||||
|
this.durationInSeconds = durationInSeconds;
|
||||||
|
this.playlist = playlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 必要的getter/setter方法
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
public String getArtist() {
|
public String getArtist() {
|
||||||
return artist;
|
return artist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setArtist(String artist) {
|
||||||
|
this.artist = artist;
|
||||||
|
}
|
||||||
|
|
||||||
public int getDurationInSeconds() {
|
public int getDurationInSeconds() {
|
||||||
return durationInSeconds;
|
return durationInSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDurationInSeconds(int durationInSeconds) {
|
||||||
|
this.durationInSeconds = durationInSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
public Playlist getPlaylist() {
|
public Playlist getPlaylist() {
|
||||||
return playlist;
|
return playlist;
|
||||||
}
|
}
|
||||||
@ -54,4 +88,4 @@ public class Song {
|
|||||||
public void setPlaylist(Playlist playlist) {
|
public void setPlaylist(Playlist playlist) {
|
||||||
this.playlist = playlist;
|
this.playlist = playlist;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user