【问题标题】:JPA - How to map the relationship between two tables?JPA - 如何映射两个表之间的关系?
【发布时间】:2012-10-10 21:52:32
【问题描述】:

我是 JPA 的新手,想弄清楚如何正确映射两个数据库表之间的以下关系:

movies { id, title, rating }

ratings { id, rating }

因此,查询电影数据库将从第二个表中返回该电影的评分字符串(“g”、“pg”等)。它们中的每一个都是它们自己的@Entity 和 java 类,如下所示。我是否必须在MovieCatalogEntitygetRating() 方法中进行某些操作才能获得正确的评级?

    @Entity(name="movieCatalog")
    public class MovieCatalogEntity {

        @Id
        @Column(name="ID", nullable=false)
        private long id;

        @Column(name="Title", nullable=false)
        private String title;

            ??? What goes here ????????
            private RatingEntity rating;
    }


@Entity(name="Rating")
public class RatingEntity {

    @Id
    @Column(name = "id", nullable=false)
    private long id;

    @Column(name="Rating", nullable=false)
    private String rating;
}

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    参见@OneToOne@ManyToOne@JoinColumn 注释

    【讨论】:

      【解决方案2】:

      假设相同的评级可以出现在许多电影上,这样的事情应该可以做到。

       @ManyToOne(optional=false) 
       @JoinColumn(name="rating_id", referencedColumnName = "ID", nullable=false)
       public RatingEntity rating
      

      @ManyToOne 的详细信息见here

      【讨论】:

      • 谢谢,我在想@ManyToOne 是实体到实体,而不是表到表。
      • @RobertYetman 很高兴它有帮助。如果它确实解决了您的问题,请接受或投票。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多