首先说一下自己的一些看法:
1、对于性别这样比较固定的值,没必要建立一个表来存储吧。作为User的一个字段岂不是更好。表表连接查询是比较消耗效率的。
2、对于这样的固定值,没必要用输入框吧。用下拉列表和radio岂不是更好,让用户选择,这样也可以降低输入错误的几率。HQL:
from User t where t.sex.sexCode=?

解决方案 »

  1.   

    当然想直接输入“男”了,关键是HQL怎么写?
      

  2.   

    1、应该输入男,输入后用“男”将表中数据查出来,也就是一个对象(Sex sex = query.u...)再用sex.getSexCode();取得性别所对应的sexcode。。取得后,进入第二步2、String hql = "from User as u where u.sex.sexcode=:sexcode";
    这里的u.sex是指你在User类中映射多对一中的那个private Sex sex;
      

  3.   

    楼主总结,问题已经得出答案,讲讲关键点在于from User t where t.sex.sexCode=?<many-to-one name="sex" class="com.myPack.Sex">
      <column name="UserSex" not-null="false"/>
    </many-to-one> 
    如果想输入“男”,就查询数据的办法是from User t where t.sex.sexName=?