@MapKeyColumn(名称= "XXX" )不起作用



我正在使用JPA 2.1和Hibernate 4.x。我发现@MakKeyColumn没有醒来。

@Entity
public class Department {
    @Id private int id;
    @OneToMany(mappedBy = "department")
    @MapKeyColumn(name = "cub_id")
    private Map<String, Employee> employeesByCubicle = new HashMap<>();
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public Map<String, Employee> getEmployeesByCubicle() {
        return employeesByCubicle;
    }
    public void setEmployeesByCubicle(Map<String, Employee> employeesByCubicle) {
        this.employeesByCubicle = employeesByCubicle;
    }
}

如果执行上面的代码,我可以看到以下错误

Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "cub_id" violates not-null constraint
  Detail: Failing row contains (2, xxxxxx, null, null).

但是,如果我省略@MapKeyColumn,它正在工作。谁能让我知道为什么它在使用@MapKeyColumn

不起作用

感谢您提前回复:)

尝试将 MapKeyColumn 定义为可为空:

@MapKeyColumn(name = "cub_id", nullable = true)

可为空属性的默认值为"false"。

相关内容

最新更新