比较一个属性可以这样:
detachedCriteria.add(Restrictions.eq(XXX.PROP_ID,Integer.parseInt(id)));
如果比较的属性本身类型是对象,那么可以这样
detachedCriteria.add(Restrictions.eq(XXX.PROP_BM+".id",Integer.parseInt(bmid)));
以上面的语句为例,如果我比较其他属性
detachedCriteria.add(Restrictions.eq(XXX.PROP_BM+".bmmc",bmmc));
这样是不行的
解决方法:先定义一个别名
detachedCriteria.createAlias(XXX.PROP_BM, "bm");
然后可以这样使用了
detachedCriteria.add("bm.bmmc",bmmc));
ps:个人总结:不使用别名,本身是对象的属性后面只能跟其主键属性,比较其他属性要用别名。个人观点,还没有得到确认