我有4個實體:播放,演員,播放表示和類別。 每場比賽屬於一個類別,並且在某個特定時間,比賽將比賽與劇院和一些演員相關聯。 下面是實體:Hibernate不是堅持嵌套關係
@Entity
@Table(name = "category")
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "name")
private String name;
@OneToMany(mappedBy="category")
private List<Play> playList = new ArrayList<Play>();
@Entity
@Table(name = "actor")
public class Actor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "description")
private String description;
@Column(name = "profile_picture")
private String profilePicturePath;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "play_representation_category",
joinColumns = {@JoinColumn(name = "actor_id")},
inverseJoinColumns = {@JoinColumn(name = "play_representation_id")})
private Set<PlayRepresentation> playRepresentations = new HashSet<>(0);
@Entity
@Table(name = "play")
public class Play {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@NotNull
@Column(name = "name")
private String name;
@NotNull
@Column(name = "description")
private String description;
@Column(name = "image_paths")
private String imagePaths;
@NotNull
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Category category;
@Entity
@Table(name = "play_representation")
public class PlayRepresentation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "play_id")
private Play play;
@OneToOne
@JoinColumn(name = "theater_id")
private Theater theater;
@Column(name = "date")
private Timestamp airingDate;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "play_representation_category",
joinColumns = {@JoinColumn(name = "play_representation_id", nullable=false)},
inverseJoinColumns = {@JoinColumn(name = "actor_id", nullable=false)})
private Set<Actor> actors = new HashSet<>(0);
我遇到的問題是,Hibernate是試圖找到play_representation和類別之間的關係!我一直試圖堅持關係的戲劇,但它似乎我得到了錯誤,無法找出最好的辦法做到這一點...這是一個postgresql數據庫順便說一句。
我還在學習,所以如果您有關於我分享的代碼的任何其他提示,請讓我知道!
編輯:錯誤是:
org.postgresql.util.PSQLException: ERROR: relation "play_representation_category" does not exist
Position: 281
和錯誤信息是?! –
你的ManyToMany是雙向的,但你還沒有把'mappedBy'鏈接到它們 –