2010-08-06 15 views
7

Ich ordne mithilfe von @CollectionOfElements einer Gruppe von Attributen Attribute zu meiner Entität zu. Das Ziel besteht darin, eine Metadatenliste bereitstellen zu können, die in einer Abfrage zum Abrufen bestimmter Einträge verwendet werden kann.Hibernate Nullwerte für @CollectionOfElements

Ich habe das Mapping herausgefunden und wie die Abfragen ausgeführt werden, die ich möchte. Das Problem besteht darin, dass der Ruhezustand keine Nullwerte enthält!


    @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); 
    } 

ZB. object.addAttribute ("someName", null); wird nicht beibehalten

Jeder hat irgendwelche Gedanken darüber, wie dies ohne die Implementierung einer Schlüssel/Wert-Paar-Einheit für den alleinigen Zweck der Fortsetzung dieser Werte zu erreichen?

Grüße,

+4

Welche Version von Hibernate verwenden Sie? Ich frage mich, ob das mit [HHH-772] (http://opensource.atlassian.com/projects/hibernate/browse/HHH-772) zusammenhängen könnte. –

+0

Hibernate 3.3.2.GA, also ja - es scheint, dass dieser Bug gilt. Ich war in der Lage, das Problem zu umgehen, indem ich NULL-Werte explizit als ein * -Zeichen einstellte, das tatsächlich recht gut funktioniert und für meine Anwendungsfälle besser als "null" passt. – bcowdery

+0

Da das Problem gelöst ist, wäre es eine gute Idee, Ihre eigene Frage zu beantworten und sie als akzeptierte Antwort zu markieren. – Zabba

Antwort

2

aus den OP Kommentare Zitiert:

Hibernate 3.3.2.GA, also ja - es sieht wie die Fehler gilt. Ich war in der Lage, Workaround das Problem von explizit Null-Werte als '*' Zeichen , die tatsächlich funktioniert ganz gut und passt besser als 'Null' für meine Anwendungsfälle.

Diese Antwort sollte dieses von der Liste der unbeantworteten Fragen bis zu einer nahen Abstimmung erhalten.