【发布时间】:2016-06-14 09:20:41
【问题描述】:
我可以从生成的 SQL 中看到,查询具有这样映射集合的实体时:
@ElementCollection(targetClass = Long.class, fetch = FetchType.EAGER)
@CollectionTable(name = "LIST_GAMES",
joinColumns = @JoinColumn(name = "LIST_ID", referencedColumnName = "ID"))
@Column(name = "GAME_ID")
@OrderColumn(name = "GAME_ORDER")
private List<Long> gameIds;
Hibernate 不会向其添加任何“order by”语句。那么这是否意味着该集合在加载后在内存中排序?或者这是否意味着我需要像 (LIST_ID, GAME_ORDER) 这样的数据库级别的复杂索引来处理数据库中的 order by?
UP:我的问题实际上是如何 hibernate 对这个集合进行排序?它是由内存中的休眠处理还是已从数据库中排序检索?我需要为 GAME_ORDER 列创建数据库索引吗?
【问题讨论】:
标签: java database hibernate jpa