[英]Foreign key constraint fails on many to many Hibernate relationship
我目前正在嘗試在 Hibernate 中實現多對多關系。 我跟着: https://www.baeldung.com/hibernate-many-to-many但是我得到一個例外,上面寫着:
java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`playlist_comparer`.`playlist_tracks`, CONSTRAINT `fk_pt_track_id` FOREIGN KEY (`track_id`) REFERENCES `tracks` (`id`))
這是我的聯接表的 liquibase:
- createTable:
tableName: playlist_tracks
columns:
- column:
constraints:
primaryKey: true
primaryKeyName: pk_playlist_track_id
name: id
type: bigint
autoIncrement: true
- column:
name: playlist_id
type: VARCHAR(255)
constraints:
foreignKeyName: fk_pt_playlist_id
references: playlists(id)
- column:
name: track_id
type: VARCHAR(255)
constraints:
foreignKeyName: fk_pt_track_id
references: tracks(id)
以及我的 Hibernate 對象上的映射:
播放列表.java:
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "playlist_tracks", //
joinColumns = {@JoinColumn(name = "track_id", nullable = false)}, //
inverseJoinColumns = {@JoinColumn(name = "playlist_id", nullable = false)})
private Set<Track> tracks = new HashSet<>();
軌道.java:
@ManyToMany(mappedBy = "tracks")
private Set<Playlist> playlists = new HashSet<>();
我首先將曲目保存到數據庫中,在一個 @Transactional 方法中與任何播放列表沒有關聯,離開事務邊界,然后輸入一個新的 @Transactional 方法,在該方法中我將曲目添加到播放列表 object 然后嘗試在此時保存它我在頂部得到了例外。
有人有想法么?
原來我只是在連接表注釋上錯誤地使用了連接列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.