现在市情上的很多公司都是利用封装好的Hibernate进行开拓,缘故原由便是速率,方便,封装的方法非常丰富,虽然说mybatis效率很高但是由于其的繁芜程度和程序员的接管程度不同以是用的公司也是看不同情形!本日不赘述,只谈Hibernate.
本人现在进行的是商品库的开拓,由于公司的注册用户不是很多以是对付性能的哀求不是特殊高,以是在接下来我讲的东西中如果有性能影响的请自行忽略或者示正出来,非常感谢!
下图是一个利用hibernate进行查询的实例:

该方法的浸染是根据商品的类目和商品的发卖地址进行对商品的查询(\公众pager\"大众是进行分页查询,\公众order\"大众是排序字段,因与先容的无太大关系以是不进行赘述) .如果对商品的基本的数据构造不熟习的可以百度sku,spu等进行查询对应关系.(后续进行对商品库的数据构造进行先容).
这个方法相称于是对指定的实体类进行查询前的封装,然后对其进行查询的参数进行添加,末了通过criteriaPagerSearch进行查询.(对上面这段代码有迷惑的可以参考https://zhidao.baidu.com/question/497420874786146164.html).
此段代码的意思是:对查询工具添加查询条件,对字段\"大众status\"大众进行条件封装,利用的Restrictions.in是指该字段匹配的条件在对应的凑集中匹配都可以.
在第一个判断代码块中,同样进行了对ProdSkuProp该工具进行条件查询的实体封装.
这里应为不再是可以即是多个值的判断以是利用的不是Restrictions.in而是利用的是eq进行等同的判断.
由于这里我们的查询是须要通过两张表进行查询的一张是ProdSku一张是ProdSkuProp进行的查询,以是我们须要将两张表进行关联,利用的是上面的方法,将两张表的两个字段进行关联.
这里进行的是春联系关系的结果ProdSkuProp在添加了条件之后再进行查询后必须要在ProdSku这个实体查询之后依旧存在(这里本来是想利用数字替代Projections.id()以提高效率,但是在Hibernate封装的方法中没有找到更为高效的替代办法,以是最快捷的便是利用id进行替代了).
末了利用criteriaPageSearch进行查询分页查询.
详细代码可上岸 http://bbs.520it.com/forum.php?mod=viewthread&tid=4071 查看。