Hibernate映射问题:private HashSet<XOrder> xOrders = new HashSet<XOrder>();public HashSet<XOrder> getXOrders()
{
return xOrders;
}public void setXOrders(HashSet<XOrder> xOrders)
{
this.xOrders = xOrders;
}private HashSet<XOrder> xorders = new HashSet<XOrder>();public HashSet<XOrder> getXorders()
{
return xorders;
}public void setXorders(HashSet<XOrder> xorders)
{
this.xorders = xorders;
}注意上面的不同,只是xOrders和xorders的不同,如果我用private HashSet<XOrder> xOrders = new HashSet<XOrder>();,就会出现下面的错误:
Could not find a getter for xOrders in class com.shadow.model.Order而在我的映射文件中对属性的映射是做了相应修改的,即
<set name="xOrders" table="XOrders" inverse="true">
<key column="orderId" />
<one-to-many class="XOrder" />
</set>

<set name="xorders" table="XOrders" inverse="true">
<key column="orderId" />
<one-to-many class="XOrder" />
</set>我想知道这是为什么?难道和javabean的规范有关?不过我觉得是没错的,还是什么其它的原因?     只是变量名字的不同却有不同的结果!!!

解决方案 »

  1.   

    难道和javabean的规范有关?
    应该是,一般属性的第二个字母不要大写
      

  2.   

    Could not find a getter for xOrders in class com.shadow.model.Order 
    出现这个错误的原因是为给xOrders定义get方法,有什么问题?
      

  3.   

    哈哈,这个问题有人发过了!  http://topic.csdn.net/u/20080925/16/3fec7fd3-c6bf-4041-8689-065dbe572386.html
      

  4.   

    都小写就行了,就别都大写了
    不过在ibatis中第一个和第二个都大写,认为java属性是第一个小写第二个大写,
    最好按规矩来,前两个都小写。