是否有可能使用休眠來對Set
集合進行排序,使用sql而不使用SortedSet
接口,而不使用@OrderBy
註釋 - 僅使用標準的addOrder。休眠在sql中排序
我試過了,它增加了order by子句,但是這個集合沒有排序。
我使用休眠3.4。
是否有可能使用休眠來對Set
集合進行排序,使用sql而不使用SortedSet
接口,而不使用@OrderBy
註釋 - 僅使用標準的addOrder。休眠在sql中排序
我試過了,它增加了order by子句,但是這個集合沒有排序。
我使用休眠3.4。
即使集合映射支持order-by,NHibernate集合也沒有「order」。見Ayende的explanation:
注意[訂單由]不能與通用集工作,在一般情況下, 你不想依賴這些排序屬性,要使用 的自然屬性所選集合。根據定義, 集合是無序的唯一元素集合。
您可以將order by子句附加到基礎SQL,但是當NHibernate構建集合時會丟失該順序。當然,使用「有序」集合或其他集合類型(包或列表)將起作用。
如果您將「設置」更改爲「列表」,並且「列表」中不存在的方法放置等價物,我們將正確工作。
Regards,
由於其他原因,我需要在那裏設置。 –
是的,我知道。我也用nhibernate添加了這個問題,儘管實際上我使用的是java,因爲我對這個主題有點絕望。當我使用@OrderBy批註註解Set時,我得到了排序集合(我懷疑hibernate使用了一些有序的實現),但是...如果我沒有註釋該字段並且僅在條件中添加排序然後返回Set不是排序。在這兩種情況下,生成的sql查詢都是一樣的。因此,結論是使用OrderBy註釋迫使hibernate使用SortedSet實現,但我不想默認使用這個註釋。 –