为了账号安全,请及时绑定邮箱和手机立即绑定

@JoinColumn name=cid是什么意思?

//一对多 双向关联
Student.java:
@ManyToOne(cascade = {CascadeType.ALL},fetch = FetchType.EAGER)
@JoinColumn(name = "cid")    ///  ????
 private ClassRoom classRoom;
 
 ClassRoom.java
@Id
@GeneratedValue(generator = "cid")
@GenericGenerator(name = "cid",strategy = "assigned")
@Column(length = 4)
private String cid; 
private String cname; 
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JoinColumn(name = "cid")  ///  ???
private Set<Student> stus;

请问cid指的是什么  ???  这个cid指的是 生成的外键字段的名词 吗? 

有没有要求必须要与主键cid属性同名?如果没有要求的换个其他比较好, 都叫cid这样会有歧义.

还有双向关联双方实体类 @JoinColumn name="xxx"   是都需要写一样吗?

正在回答

2 回答

@JoinColumn(name="rid", referencedColumnName="cid")     //name=定义外键在本表的字段名 referencedColumnName =关联外键对象的哪个字段


2 回复 有任何疑惑可以回复我~
#1

慕娘9557946 提问者

非常感谢!
2018-03-03 回复 有任何疑惑可以回复我~

提问居然乱码了


ClassRoom :

   @Id
   @GeneratedValue(generator = "cid")
   @GenericGenerator(name = "cid",strategy = "assigned")
   @Column(length = 4)
   private String cid; 
   private String cname; 

   @OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
   @JoinColumn(name = "cid")
   private Set<Student> stus;


Student :

   @Id
   @GeneratedValue 
   private int sid;

   @Column(length = 25)
   private String sname;
   private String gender;
   private Date birthday;
   private String major;

  @ManyToOne(cascade = {CascadeType.ALL},fetch = FetchType.EAGER)
  @JoinColumn(name = "cid")
   private ClassRoom classRoom;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Hibernate注解
  • 参与学习       37182    人
  • 解答问题       87    个

轻松学习Hibernate常用注解,学完本课能够灵活应用

进入课程

@JoinColumn name=cid是什么意思?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信