2011-10-10 13 views
11

çalışmazgibi neden JSF Veritabanında çalışmamalı? List ile çalışır. Bu veri yapısı bir dizin tarafından sipariş olan nesneler topluluğu tutmak için intented asla çünkü genelde bir Set desteklenmez Neden olarakDatatable JSF'de bir Set koleksiyonundaki nesnelerin görüntülenmesi

+2

Kesinlikle bir HashSet öğesi sipariş edilmediğinden. Sette herhangi bir ekleme veya çıkarma, elemanlarının sırasının değişmesine neden olabilir. –

+0

@JBNizet Bu bir cevap olmalı. –

+0

JSF'de uzman değilim ve bu nedenle bunun nedeninin (veya tek sebebin) olduğundan emin değilim. Bu yüzden başkalarının daha hassas bir cevabı vermesine izin vereceğim. –

cevap

23

, bu. List bunu yapar ve bu veri yapısı, UIData bileşeninin değerini temsil eden en mantıklı veri yapısıdır. UIData bileşenlerinin sarılmış değerini temsil eden ve satır dizinlerini tutan DataModel arabirimi, yineleme için geçerli satırı hatırlar ve geri gönderme sırasında gönderme işlemini gerçekleştirir, Java toplama sınıfları yalnızca arabiriminin ListDataModel çeşidindeki aromasını destekler. (Genelde nm ilişkiler için Set kullanır özellikle hazırda/JPA topluluğu tarafından itilen) uzun bir karar süreci, MTU Spec ekibi yaklaşan JSF 2.2 için vardır sonra

nihayet tek başına Collection arayüzü yerine DataModel arayüz desteği izin verdi Yeni CollectionDataModel uygulamasının yardımıyla List. Bu da setleri destekler. Ayrıca bkz. JSF spec issue 479. Amacınız düzenlenebilir bir veri tablosuna sahip olmak istiyorsanız, HashSet yerine LinkedHashSet'u kullanmayı unutmayın. Bir LinkedHashSet, öğelerin sıralamasını korur.