[英]How to insert into a table in hibernate using rest api and on that table 2 column are foreign key of another table?
[英]Hibernate Insert table id as foreign key in another table
我有2张桌子PERSON和CARD
我希望我的表CARD具有PERSON_ID作为FK,我应该如何在休眠实体类中进行操作。
有没有一种方法可以通过Java类和注释来实现?
我的个人实体班
package com.managementsystem.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity(name="PERSON")
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name;
private String card_no;
private String rank;
private String dte;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCard_no() {
return card_no;
}
public void setCard_no(String card_no) {
this.card_no = card_no;
}
public String getRank() {
return rank;
}
public void setRank(String rank) {
this.rank = rank;
}
public String getDte() {
return dte;
}
public void setDte(String dte) {
this.dte = dte;
}
}
我的卡实体类
package com.managementsystem.model;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity(name="CARD")
public class Card {
@Id
private int id;
//What to do here, how to link this to person id.
private int person_id;
private int serial_no;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPerson_id() {
return person_id;
}
public void setPerson_id(int person_id) {
this.person_id = person_id;
}
public int getSerial_no() {
return serial_no;
}
public void setSerial_no(int serial_no) {
this.serial_no = serial_no;
}
}
在卡类中该怎么做,以便我可以在所需的卡表中输入person_id。
在“ Person
您要使用card_no
属性维护Card
信息,在“ Card
实体中,也要拥有person_id
属性。 因此,您正在寻找的是双向关系。 假设您正在寻找One-To-Many
双向关系,那么“ Person
和“ Card
实体之间的映射将如下所示。
一个Person
可以有很多Cards
因此您需要在人类中设置一个。 映射是一对多所以使用@OneToMany
和mappedBy
属性告诉什么性质的Card
类代表了Person
的实体。 我在Card
类中使用了属性名称person
,因此mappedBy
包含值为person
。
@Entity(name="PERSON")
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@OneToMany(mappedBy = "person")
private Set<Card> cards;
}
现在在Card
类中,与Person
类的关系是ManyToOne
,因此请使用注释@ManyToOne
,在这里您可以指定Card
表中指向Person
表的主键的外键名称。 在这里我们可以给外键起任何名字,如果你想给它起"parent_id
@JoinColumn(name = "parent_id")
那么添加注解@JoinColumn(name = "parent_id")
@Entity(name="CARD")
public class Card {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name = "parent_id")
private Person person;
}
阅读文档: http : //docs.jboss.org/hibernate/orm/4.3/manual/zh-CN/html/ch05.html#d5e3678
更改行:
private int person_id;
对于:
@ManyToOne
@JoinColumn(name = "PERSON_ID")
private Person person;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.