私は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とカテゴリとの関係を発見しようとしていることです!私は演劇のための関係を維持しようとしてきましたが、それは私が間違っているようだし、それを行うための最善の方法を理解することができない...それはポストデータベースのDBです。
私はまだ学んでいますので、私が共有したコードに関するヒントがあればお知らせください!
編集:エラーは、次のとおりです。
org.postgresql.util.PSQLException: ERROR: relation "play_representation_category" does not exist
Position: 281
エラーメッセージは? –
ManyToManyは双方向ですが、 'mappedBy'をリンクさせていません。 –