Aşağıdaki JPA sınıfına sahibiz:JPA'da bir koleksiyon özelliğini dinamik olarak nasıl sıralayabilirim?
@Entity
class Supplier {
// ... id property etc.
@OneToMany
@OrderBy("someProperty")
private List<Region> regions;
}
Bu normal durumda iyi çalışır. Bununla birlikte, değerlerin nameEn
, nameDe
, nameZh
gibi özelliklerde saklandığı bazı çok dilli verilere sahibiz. Kullanılacak tam özellik, oturum açmış kullanıcıya bağlıdır. Örneğin, Almanca konuşan bir kullanıcı bölgeleri @OrderBy("nameDe")
ile açıklanmış gibi görmelidir.
Bunu nasıl başarabilirim?
Koleksiyonum yüklendikten sonra kodumda sıralayabildiğimin farkındayım, ancak bu durum sonuçların sayfalandırılmasını oldukça zorlaştırıyor.
Devamlılık biriminiz için EntityManagerFactory oluşturulduğunda ek açıklamalar bir kez işlendiğinden, bunu ek açıklamaya katıştıramazsınız. Yapmaya çalıştığınız, dinamik bir sorgu oluşturmaya benzer. –