Hibernate criteria 关联
来源:互联网 发布:网络剧的受众分析 编辑:程序博客网 时间:2024/06/05 15:33
hibernate的criteria版本相对比较老了,好像好久没更新新内容了,在hibernate5.2以后的源码中直接被Deprecated掉了,然后建议使用Jpa的criteria。
hibernate的关联比较的奇葩,大概的实现方式如下:
List<User> users = session.createCriteria(User.class) .createAlias("role", "role", JoinType.LEFT_OUTER_JOIN) .add(Property.forName("role.roleName").eq("su")).list();
还有种方式是createCriteria来关联对象:
List<User> users = session.createCriteria(User.class) .createCriteria("role", "role", JoinType.LEFT_OUTER_JOIN) .add(Property.forName("roleName").eq("su")).list();
两者调用非常类似,唯一区别就是createAlias返回当前的Criteria,createCriteria返回一个新的criteria,而新的criteria的操作主体类就变成了Role.class了,所以后续的拼接条件时createAlias需要使用"role.roleName",而createCriteria是直接使用"roleName",而且原来User里面的属性就不能再引用了。
其中最奇葩的地方是貌似只能以fetch的方式关联,而不能以join的方式关联!!!
转换成hql的方式也就是:
只能实现
from User user left out join fetch user.role role where role.roleName=:roleName而不能实现
from User user left out join user.role role where role.roleName=:roleName
hibernate的Criteria还存在某些问题而且久未更新功能,特别是属性只能使用字符串,而不能用类似JPA的Metamodel,按照官方建议最好还是使用JPA的Criteria。
另外QueryDSL也是不错的选择,但是略显臃肿。
0 0
- Hibernate Criteria 关联查询
- Hibernate Criteria 关联查询
- Hibernate criteria 关联
- hibernate ,criteria关联查询
- hibernate criteria 分组 排序 关联
- hibernate Criteria query 主外键关联
- hibernate criteria 分组 排序 关联
- hibernate criteria 分组 排序 关联
- Hibernate Criteria 多层次查询关联问题
- Hibernate Criteria 多层次查询关联问题 HibernateJava
- Hibernate Criteria 多层次查询关联问题
- hibernate criteria 多表关联查询
- 使用hibernate的Criteria来动态改变对象关联方式
- Hibernate Criteria 关联查询(inner join 与 left join)
- 用criteria进行关联查询--hibernate 的ResultTransformer
- Hibernate:Criteria多表关联查询的试用
- Hibernate---Criteria
- Hibernate---Criteria
- 7.2 Database Backup Methods 数据备份方法:
- 进来看看
- 深入理解Java之线程池
- Codevs 打鼹鼠
- mysql中的if使用总结
- Hibernate criteria 关联
- 统计n之内的完全数
- Android开发中Handler的经典总结
- 对二叉树进行前序、中序、后序遍历
- iOS10 相关权限配置(相机、相册、日历、媒体资料库)
- C#大数阶乘算法
- git push 时出现hint错误
- 自我命名规范
- 一个Thinkphp、jquery ajax、IE10以下浏览器的BUG冲突问