我目前正在尝试思考如何在我的项目中修复hibernate中的实体之间的关系。该项目基本上是一个音乐管理的东西,所以有用户,歌曲和艺术家。
一个用户可以拥有多首歌曲,一首歌曲可以被多人赞成。 一首歌只有一位艺术家。
实体看起来像这样: 用户:
public class User implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany
private List<Song> songs;
曲:
public class Song implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(mappedBy = "songs")
private List<User> users;
@ManyToOne
private Artist artist;
艺术家:
public class Artist implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "artist")
private List<Song> songs;
在一个方法中,我使用一个简单的JPARepository来保存一些更改:
artistRepository.save(song.getArtist());
songRepository.save(song);
userRepository.save(requestUser);
然后我得到错误,我必须首先保存有意义的实体歌曲。我想我在连接entites时搞砸了。有人可以帮帮我吗?