关于DetachedCriteria,今天的一小发现

关于DetachedCriteria,今天的一小发现

比较一个属性可以这样:
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:个人总结:不使用别名,本身是对象的属性后面只能跟其主键属性,比较其他属性要用别名。个人观点,还没有得到确认


你可能感兴趣的:(关于DetachedCriteria,今天的一小发现)