Нулевые значения Hibernate для @CollectionOfElements - PullRequest
7 голосов
/ 07 августа 2010

Я сопоставляю набор атрибутов с моей сущностью, используя @CollectionOfElements. Цель здесь - предоставить список метаданных, которые можно использовать в запросе для извлечения определенных записей.

Я разобрался с отображением и тем, как выполнять запросы, которые я хочу. Проблема в том, что 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); не будет сохраняться

У кого-нибудь есть мысли о том, как этого добиться, не реализуя сущность пары ключ / значение с единственной целью сохранения этих значений?

С уважением,

1 Ответ

2 голосов
/ 06 ноября 2010

Цитирование из комментария ОП:

Hibernate 3.3.2.GA, так что да - выглядит как этот баг применяется. я мог обойти проблему явно установка нулевых значений в виде символа '*' который на самом деле работает довольно хорошо и подходит лучше, чем «ноль» для моего потребительные случаи.

Этот ответ должен исключить этот вопрос из списка вопросов без ответа, пока не будет проведено закрытое голосование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...