本人有2个java对象。之间关系是one-to-many 和many-to-one..
大概代码结构如下:A{
   B bbIns;
......    
}B{
   Set insASet = new HashSet();
}a.hbm.xml:
    < many-to-one name="bbIns" column="b_ins"/>
b.hbm.xml:
   <set name="insASet" inverse="true" cascade="all">
     <key column="b_ins"/>
<one-to-many class="A">
</set>然后在ADao文件里面调用:getHinberanteTemplate.find("from A where bbIns=22");系统竟然抛说 bbIns不是合法的字段异常。 。。 郁闷我。。 如果改bbIns = b_ins这就好了。。 。 为什么我不能用bbIns 是不是我哪个配置文件配置错料。。谢

解决方案 »

  1.   

    < many-to-one name="bbIns" column="b_ins"/>
    many-to-one里要有个class属性,不知是你没写出来,还是漏了
    < many-to-one name="bbIns" column="b_ins" class="B"/>
      

  2.   

    3x!  有的,那个我是没有打上来..我自己解决了..是因为我在持久层调用时,没有使用别名,也就是说必须要getHinberanteTemplate.find("from A as aa where aa.bbIns=22");但是我不知道为啥非要用别名,其他类似多对1地方,我没有用别名确是可以的..不过那些不用别名的地方是单向多对1关联..莫非是双向1对多,多对1关联时,持久层使用需要用别名?   而单向的不要?      解决了,确不知道原因....谢谢