Hibernate 休眠@CollectionFements的空值

Hibernate 休眠@CollectionFements的空值,hibernate,collections,Hibernate,Collections,我正在使用@CollectionFements将一组属性映射到我的实体。这里的目标是能够提供一个元数据列表,可以在查询中使用该列表来提取特定的条目 我已经找到了映射以及如何运行我想要的查询。问题是hibernate不会保留空值 @CollectionOfElements() @JoinTable(name = "plan_attribute", joinColumns = @JoinColumn(name = "plan_id")) @MapKey(columns =

我正在使用@CollectionFements将一组属性映射到我的实体。这里的目标是能够提供一个元数据列表,可以在查询中使用该列表来提取特定的条目

我已经找到了映射以及如何运行我想要的查询。问题是hibernate不会保留空值


    @CollectionOfElements()
    @JoinTable(name = "plan_attribute", joinColumns = @JoinColumn(name = "plan_id"))
    @MapKey(columns = @Column(name = "attribute_name", nullable = false, length = 255))
    @Column(name = "attribute_value", nullable = true, length = 255)
    public Map getAttributes() {
        return attributes;
    }

    public void setAttributes(Map attributes) {
        this.attributes = attributes;
    }

    public void addAttribute(String name, String value) {
        this.attributes.put(name, value);
    }
例如object.addAttribute(“someName”,null);不会持久化

有人想过如何实现这一点,而不只是为了保持这些值而实现键/值对实体吗


关于,

引用OP评论:


Hibernate 3.3.2.GA,所以是的,它看起来 就像那个错误一样。我能够 通过显式地解决问题 将空值设置为“*”字符 这实际上非常有效,而且 比“null”更适合我的 用例


这个答案应该在投票结束前将其从未回答问题列表中删除。

您使用的是什么版本的Hibernate?我想知道这是否与.Hibernate 3.3.2.GA有关,所以是的-看起来这个bug适用。我能够通过显式地将空值设置为“*”字符来解决这个问题,这实际上非常有效,并且比我的用例中的“null”更适合,回答你自己的问题并将其标记为已接受的答案是一个好主意。我偶然发现这个问题,因为它被标记为未回答。你真的应该把它关掉。