项目中关于检索的注意事项

可以用criteria来做查询,比如要查询某个列表。

先说criteria的几个基本用法,举例

course与property两个对象是一对多,前一后多。

现在需要找寻property中id为2的所有course。

criteria.createAlias("properties","properties")
            .add(Restrictions.eq("properties.id",currentPropertyId));

createAlias的用法。

现在查询course中name为某个的时候:

if(!Strings.isNullOrEmpty(name))criteria.add(Restrictions.like("name",name,MatchMode.ANYWHERE));

注意,需要对name进行判断是否为empty或为null。

然后就是MachMode的模糊查询用法。

再对列表进行倒序排序:criteria.addOrder(Order.desc("id"));

这是几个常用的用法。


接着说:用这个的好处就在于好添加条件。

比如现在说了name又说了property,等下又有一个,搞不好要修改service层,dao层的代码。

如果用criteria,就可直接在controller层直接添加。


这样,我们就可以很好的将列表和检索的用一个方法来做就行了。


以前我用错了,是这么回事,总列表,我用一个方法,而条件查询,我又用了一个方法。

这样,两个方法其实是重复了的。

你可能感兴趣的:(项目中关于检索的注意事项)