java - hibernate 时无法保存数据

标签 java hibernate

我正在尝试将数据保存到 hibernate 状态,但由于错误而无法保存:

12:39:24,006 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-4) Unknown column 'department_id' in 'field list'

请找到下面的问题陈述:

这是我的实体类:

@Entity
@Table(name = "employee")
@Where(clause = "isDeleted = false")
public class Employee extends BaseEntity {

    @OneToOne
    private Department department;

    private int status;

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }


}

员工表:

id |部门 |状态

我正在插入这样的数据:

 @Inject
    CrudService<Employee> employeeManager;

    Department department = new Department();

    // create department and after creating depaerment

    department.setDepartment(department);
    department.setStatus(1);
    department.setId(null);

    employeeManager.create(department);

我在保存数据时收到错误:

insert into employee (isdeleted, last_modification, department_id, status) values (?, ?, ?, ?)

here i can see that my Employee Table conatins department column but hibernate is generating department_id

在内部插入记录。

有人可以帮我吗?如果您需要更多信息,请返回。

最佳答案

首先,我猜很多员工属于同一个部门,所以应该是ManyToOne。其次,您可以使用 JoinColumn 指定...连接列的名称:

@ManyToOne
@JoinColumn(name = "department")
private Department department;

但我宁愿更改数据库中列的名称,因为 department_id 可以更清楚地表明该列包含部门的 ID,因此是外键。

关于java - hibernate 时无法保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46844358/

相关文章:

java - Hibernate标准查询具有相同字段名称的子类

java - 当 AnnotationConfiguration 已弃用时,为什么我需要 AnnotationConfiguration 实例?

java - 如何使用 JPA 和 Hibernate 将 MySQL JSON 列映射到 Java 实体属性

java - iText 7 表格忽略我的表格边框设置

java - 从多个命令行参数打印较小的字符串

java - Flyway 数据库迁移到多个模式

java - 我如何映射到具有同一实体的两个字段的对象?

java - 变量作用域为整个类

java - 在 testng 的 @BeforeTest 中访问 spring 上下文

java - 如何使用 Hibernate 加密数据以防止访问列值