Java map类型的hibernate字段需要nullable=true

Java map类型的hibernate字段需要nullable=true,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,使用hibernate 3.6.3.Final,我在一个实体中有这个映射 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "policy_id", referencedColumnName = "id", nullable = false) @MapKeyColumn(name = "document_type", nullable = true) @MapKeyEnumera

使用hibernate 3.6.3.Final,我在一个实体中有这个映射

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
@JoinColumn(name = "policy_id", referencedColumnName = "id", nullable = false)
@MapKeyColumn(name = "document_type", nullable = true) 
@MapKeyEnumerated(EnumType.STRING)
private final Map<DocumentType, PolicyDocument> policyDocuments = new HashMap<DocumentType, PolicyDocument>();
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name=“policy\u id”,referencedColumnName=“id”,nullable=false)
@MapKeyColumn(name=“document\u type”,nullable=true)
@MapKeyEnumerated(EnumType.STRING)
private final Map policyDocuments=new HashMap();
但是我想知道为什么我必须将MapKeyColoum设置为nullable=true

我不希望插入然后更新类型查询


如果将其更改为nullable false,则不会得到文档类型的默认值。

您希望得到什么默认值?我不需要默认值。我希望它不为空。