hibernate的注解@OrderBy的排序原理?

xiaozaq 2015-10-27 04:20:16
private Set<DeptEntity> cDeptEntity = new HashSet<DeptEntity>();//下属

@OrderBy("deptId asc")
public Set<DeptEntity> getDeptEntity() {

网上查了很久,但是不清楚hibernate是如何保证cDeptEntity 输出的结果有序的?
...全文
439 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30917349 2018-12-14
  • 打赏
  • 举报
回复
虽然你 new了一个 HashSet , 但是 hibernate 最后重新赋值的时候肯定不会是往你这个HashSet 里面直接装数据, 而是直接一个 Set对象 赋值给你的 cDeptEntity 而这个Set 对象肯定是 LinkedHashSet 或者其子类
qq_30917349 2018-12-14
  • 打赏
  • 举报
回复
Set 只是一个接口, 根本就没有有序还是无序这个概论, 所谓的Set 无序一般也是说的 HashSet 是无序的, 至少LinkedHashSet 就是有序的。 至于habernate 用set 接受, 他会放在那个实现里面, 肯定不是HashSet
xiaozaq 2015-10-27
  • 打赏
  • 举报
回复
一不小心提交2个帖子,这个关闭了。
xiaozaq 2015-10-27
  • 打赏
  • 举报
回复
按照set自己的原则排序,那么遍历时会按照deptId asc这个方式排序吗? 如果不能按照这个方式排序,那么那个注解还有什么意义呢?
  • 打赏
  • 举报
回复
引用 2 楼 xiaozaq 的回复:
@fengmy11 那只能保证查出来的结果有序,把结果按顺序放入set后,输出的顺序不一定就是放入时的顺序啊?
set会按照他自己的原则排序
xiaozaq 2015-10-27
  • 打赏
  • 举报
回复
@fengmy11 那只能保证查出来的结果有序,把结果按顺序放入set后,输出的顺序不一定就是放入时的顺序啊?
风梦月 2015-10-27
  • 打赏
  • 举报
回复
最终转化的还是sql的order by啊

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧