2011-01-08 33 views
2

我有一个实体,它在我的Hibernate/GWT应用程序中被使用了很多。大多数情况下,一切正常,但Hibernate拒绝加载其中一个属性。它不会出现在查询中,尽管在实体中被正确注释。为什么Hibernate不加载列?

实体的相关部分:

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

而生成的SQL查询:

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

尽管我指的是财产,它从来没有加载,懒洋洋地或没有, getter总是返回false。关于如何深入研究这个问题的任何想法,或者可能出错的地方?

回答

3

我认为这是方法的名称。它需要从isget开始,以符合JavaBeans规范,并通过休眠来提取。

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

我认为“isSubSlot”在Java Bean规范下是允许的。 – duffymo 2011-01-08 15:47:40