【发布时间】:2014-04-05 00:54:26
【问题描述】:
我正在尝试创建@OneToMany 关系,尽管我在这里阅读了几个答案,但我仍然收到 PSQLException。
我正在尝试创建具有许多 Media 对象的 Track。于是我跟着this回答。
问题:
尝试保存包含多个 Medias 的 Track 时,我得到:
PSQLException: ERROR: insert or update on table medias violates foreign key constraint
Detail: Key (normmediatitle)=(SOME_MEDIA_TITLE) is not present in table tracks.
我错过了什么?
媒体:
@Entity(name = "medias")
public class Media {
static Logger logger = LoggerFactory.getLogger(Media.class);
@Id
@NotNull
@Column(name="normmediatitle")
private String title;
@GeneratedValue(strategy = GenerationType.AUTO, generator = "media_seq_gen")
@SequenceGenerator(name = "media_seq_gen", sequenceName = "mediaSeq")
private long id;
@NotNull
@Column(unique = true)
private String videoId;
曲目:
@Entity(name = "tracks")
public class Track {
static Logger logger = LoggerFactory.getLogger(Track.class);
@Id
@NotNull
@Column(name="normtracktitle")
private String title;
@NotNull
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="normmediatitle", referencedColumnName="normtracktitle")
private List<Media> medias;
更新 - Pom.xml:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.Final</version>
</dependency>
【问题讨论】:
标签: spring hibernate postgresql jpa-2.0