Java 使用hibernate注释进行多个映射?

Java 使用hibernate注释进行多个映射?,java,hibernate,hibernate-annotations,Java,Hibernate,Hibernate Annotations,我的数据库中有3个表 我在这里开发的模式 一个员工可以参加多个会议,一个会议可以由多个员工参加 我正在应用程序中使用hibernate 这是我的POJO @Entity @Table(name="emp") public class Employee { @Id @Column(name="user_id") @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @Column(name=

我的数据库中有3个表

我在这里开发的模式

一个员工可以参加多个会议,一个会议可以由多个员工参加

我正在应用程序中使用hibernate

这是我的POJO

@Entity
@Table(name="emp")
public class Employee
{
@Id
    @Column(name="user_id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;

    @Column(name="Name")
    private String name;

    @Column(name="salary")
    private String salary;

    @ManyToMany(cascade = {CascadeType.ALL})
    @JoinTable(name="emp_meeting", 
            joinColumns={@JoinColumn(name="user_id")}, 
            inverseJoinColumns={@JoinColumn(name="meetingId")})
private Set<MEETING> meetings= new HashSet<MEETING>();


   // getter and setter
}



@Entity
@Table(name="MEETING")
public class MEETING{


    @Id
    @Column(name="meetingId")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int mid;

    @Column(name="agenda")
    private String agenda;

    @ManyToMany(mappedBy="meetings")
    private Set<Employee> emps= new HashSet<Employee>();

    //gettter and setter
}
@实体
@表(name=“emp”)
公营雇员
{
@身份证
@列(name=“user\u id”)
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
@列(name=“name”)
私有字符串名称;
@列(name=“salary”)
私人串薪;
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name=“emp_会议”,
joinColumns={@JoinColumn(name=“user_id”)},
inverseJoinColumns={@JoinColumn(name=“meetingId”)})
私有集合会议=新HashSet();
//接二连三
}
@实体
@表(name=“会议”)
公开课{
@身份证
@列(name=“meetingId”)
@GeneratedValue(策略=GenerationType.AUTO)
私人int mid;
@列(name=“议程”)
私人议程;
@许多(mappedBy=“会议”)
私有集emps=newhashset();
//接球手和接球手
}
这是正确的吗?
因为我不知道如何插入到第三个表中?

由于关联表的信息不超过主表的两个外键,所以当您关联对象
员工
会议
时,此表中的插入由hibernate管理。因此,对我来说,您的映射是正确的,如果遇到问题,请不要忘记在两个方向上关联(即,在java中,如果要向会议添加员工,则应将会议添加到此员工,反之亦然)


(关于另一个主题:您的类名应该遵守java约定命名,并且是
会议
,而不是
会议
)。

您不需要在第三个表中明确插入。当您使用Cascade.ALL Cascade level时,与填充了会议集的员工进行的任何save/persist调用都将在映射表中自动保存

第三个表是什么?请检查我在sqlfiddle上的db模式。链接在问题中,但我如何获得响应列的值。我没有把它和我的pojo的艾米联系起来。