我有一个Hibernate实体“Contract”,它有一组“ContractVersions”(一对多映射)。这是一个缩短的映射:
<class name="Contract">
<set name="versions" order-by="version_id" mutable="false" lazy="false" fetch="join">
<key column="contract_id" not-null="true"/>
<one-to-many class="ContractVersion"/>
</set>
</class>
然后,我制定了一个标准,用于合同搜索,并希望按日期订购结果:
criteria.addOrder(Order.desc("createdAt"));
但是,当我查看生成的SQL时,我发现了一个问题。 Hibernate使用左外连接来选择带有版本的契约,并添加两个顺序:
... order by version4_.version_id, this_.created_at desc ...
对我来说,按日期排序更重要。有没有办法解决这个问题?