【问题标题】:How to configure @OneToMany - getting PSQLException如何配置@OneToMany - 获取 PSQLException
【发布时间】:2014-04-05 00:54:26
【问题描述】:

我正在尝试创建@OneToMany 关系,尽管我在这里阅读了几个答案,但我仍然收到 PSQLException。

我正在尝试创建具有许多 Media 对象的 Track。于是我跟着this回答。

问题: 尝试保存包含多个 MediasTrack 时,我得到:

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


    【解决方案1】:

    我最终按照 JPA 1.0 标准执行了 @OneToMany。这不是单向的,但对我来说更有意义:)。

    我发现this 站点是可靠的,并且解释了 JPA 1.0 和 JPA 2.0 实现。

    【讨论】:

      猜你喜欢
      • 2019-11-29
      • 2011-07-27
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 2010-10-27
      • 2023-03-12
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多