java - 如何使用rest api插入hibernate中的表,并且该表2列是另一个表的外键?

标签 java mysql hibernate nhibernate-mapping dao

我有 3 个 POJO 类 EmpDepDesig<​​ 三个表。我想使用 REST API 在 hibernate 中插入 Emp 表列 e_codee_namedep_id(Dep 表的外键)、desig_id(Desig<​​ 表的外键)、salary

我的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_codee_namesalary,但 dept_iddesig_idnull,没有值进入数据库...

所以我的问题是:如何将dept_iddesig_id的数据获取到Emp表中?

最佳答案

像这样更新你的实体,希望它能起作用:

        @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
            ...
        }

关于java - 如何使用rest api插入hibernate中的表,并且该表2列是另一个表的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182063/

相关文章:

java.lang.AssertionError : Status expected:<200> but was:<405> 错误

java - Hibernate:使用外键插入数据

java - org.hibernate.exception.JDBCConnectionException : Error calling Driver#connect

php - 费用追踪器

java - 如何在 HQL 中获取已删除的行数

java - 使用 JAVA 从 CSV 文件中读取列

java - 如何在Java中存储超过10位的数字

java - Long、Integer 和 Short 比较方法的不同实现?

MySQL从同一行不同列中选择最后输入的日期和值

php - mysql根据另一个表将序列更新到一个表中