繁体   English   中英

JPA多对多协会实体

[英]JPA Many to many association entity

我正在使用JPA ORM开发具有嵌入式数据库的Java EE项目。 我的问题是

当我在两个实体中创建@ManyToMany字段时,我也必须创建关联实体,否则它将为我做容器吗?

课程实体片段

        Public class Course implements Serializable {
    ...
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private long id;

            @ManyToMany
        @JoinTable(name="course_user", joinColumns={@JoinColumn(name="course_id", referencedColumnName="id")},
            inverseJoinColumns={@JoinColumn(name="user_id", referencedColumnName="id")})
        private List<User> enrolledStudents;
    ...

用户实体代码段

public class User implements Serializable {
    private static final long serialVersionUID = 1L;
...

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    @ManyToMany(mappedBy="enrolledStudents")
    private List<Course> enrolledCourses;
...

所以这是我需要的一切吗? 谢谢您的回答!

可以,但是请看这里:

休眠最佳做法:避免多对多和“异国”关系

在某个时候,您最有可能希望保存有关此关系的其他信息(例如,注册日期?),因此您还可以预先创建“加入实体”以保存以后的重构。

是的,这就是您所需要的...如果您从代码中创建数据库,您将看到三个表... Course,User和Course_User女巫具有Couse和User的ID

是的,这就足够了。 http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany中查看示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM