如何使用 rest api 在休眠状态下插入表中,并且在该表 2 列上是另一个表的外键?
Posted
技术标签:
【中文标题】如何使用 rest api 在休眠状态下插入表中,并且在该表 2 列上是另一个表的外键?【英文标题】:How to insert into a table in hibernate using rest api and on that table 2 column are foreign key of another table? 【发布时间】:2020-05-27 15:22:09 【问题描述】:我有 3 个 POJO 类 Emp
、Dep
和 Desig
三个表。我想插入Emp
表列e_code
,e_name
,dep_id
(Dep
表的外键),desig_id
(Desig
表的外键),salary
在休眠中使用REST API
我的Emprepositary
班级是
public class EmpRepositary
public void addEmployee(Emp e1)
Session session = SessionUtill.getSession();
Transaction tx = session.beginTransaction();
addEmployee1(session,e1);
tx.commit();
session.close();
public void addEmployee1(Session session, Emp e1)
Emp emp= new Emp();
emp.setE_code(e1.getE_code());
emp.setE_name(e1.getE_name());
emp.setSalary(e1.getSalary());
emp.setDep(e1.getDep());
emp.setDesig(e1.getDesig());
session.save(emp);
这是我的Emp
POJO 课程
@Entity
public class Emp
@Id
private int e_code;
private String e_name;
private int salary;
@ManyToOne
private Dep dep;
@ManyToOne
private Desig desig;
getter setter
...
当我将数据放入 REST API 时,代码运行完美,但数据仅进入数据库 e_code
、e_name
、salary
但 dept_id
、desig_id
是 null
,没有值进入数据库。 ..
所以我的问题是:如何将dept_id
、desig_id
的数据放入Emp
表中?
【问题讨论】:
【参考方案1】:像这样更新您的实体,希望它有效:
@Entity
public class Emp
@Id
private int e_code;
private String e_name;
private int salary;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "dep_id ", nullable = false)
private Dep dep;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "desig_id ", nullable = false)
private Desig desig;
getter setter
...
【讨论】:
@ManyToOne
有一个默认的获取类型 - Eager以上是关于如何使用 rest api 在休眠状态下插入表中,并且在该表 2 列上是另一个表的外键?的主要内容,如果未能解决你的问题,请参考以下文章
获取 REST API 数据并使用 C# 将它们保存到 SQL 表中
angularjs,rest api,spring security,休眠任何应用程序