2011-01-08 7 views
2

Ich habe eine Entität mit ein paar Eigenschaften, die in meiner Hibernate/GWT App viel benutzt wird. In den meisten Fällen funktioniert alles einwandfrei, aber Hibernate weigert sich, eine der Eigenschaften zu laden. Es wird nicht in der Abfrage angezeigt, obwohl es in der Entität korrekt annotiert ist.Warum lädt Hibernate eine Spalte nicht?

Der relevante Teil des Unternehmens:

@Column(name="HasSubSlots") 
@Type(type="yes_no") 
public boolean hasSubSlotSupport() { 
    return hasSubSlotSupport; 
} 

und die erzeugten SQL-Abfrage:

Hibernate: 
    /* load entities.DeviceModel */ select 
     devicemode0_.DevModel as DevModel1_0_, 
     devicemode0_.InvModelName as InvModel2_1_0_ 
    from 
     DeviceModels devicemode0_ 
    where 
     devicemode0_.DevModel=? 

Trotz der Tatsache, dass ich auf diese Eigenschaft verweisen, ist es nie, faul oder nicht, geladen und Der Getter gibt immer false zurück. Irgendwelche Ideen, wie ich tiefer in das eindringen könnte, oder was könnte falsch sein?

Antwort

3

Ich denke, es ist der Name der Methode. Es muss mit is oder get beginnen, um der JavaBeans-Spezifikation zu entsprechen und von Hibernate abgeholt zu werden.

@Column(name="HasSubSlots") 
@Type(type="yes_no") 
public boolean isSubSlotSupport() { 
    return hasSubSlotSupport; 
} 
+0

Ich dachte "IsSubSlot" wäre unter der Java-Beans-Spezifikation zulässig. – duffymo

+0

Huh. Es wäre ein armer Name für die Methode, da SsubSlot mir scheint zu fragen "Ist das ein Sub-Slot?", Aber ich werde es mit isSubSlotSupported versuchen, was marginal ist. Schlechter als hasSubSlotSupport, aber wenn es funktioniert, funktioniert es. Danke für den Tipp. –

+0

Sie können getHasSubSlotSupport() auch verwenden, wenn Sie dies bevorzugen. –

Verwandte Themen