SORU
7 Aralık 2010, Salı


Fıkra ekleme JPA Sorguya Listesi

Şuna benzer bir NamedQuery yaptım:

@NamedQuery(name = "EventLog.viewDatesInclude",
        query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
          "el.timeMark <= :dateTo AND "
          "el.name IN (:inclList)")

Yapmak istediğim şey bu parametre doldurmak :bir öğe yerine bir öğe listesi ile inclList. Eğer ben örneğin new List<String>() { "a", "b", "c" } nasıl bunu alabilirim :parametre inclList? Bana sadece kodlama sağlar bir dize. Örneğin:

setParameter("inclList", "a") // works

setParameter("inclList", "a, b") // does not work

setParameter("inclList", "'a', 'b'") // does not work

setParameter("inclList", list) // throws an exception

Sadece bir dize oluşturun ve bütün Sorgu inşa edebileceğini biliyorum, ama yükünü önlemek için istedim. Bunu yapmanın daha iyi bir yolu var mı?

İlgili soru: Eğer Liste çok büyükse, bu gibi sorgu binanın herhangi bir iyi bir yolu var mı?

CEVAP
7 Aralık 2010, Salı


(...) ihtiyacın yok parametre koleksiyon değeri: IN kullanırken

@NamedQuery(name = "EventLog.viewDatesInclude", 
    query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND " 
      "el.timeMark <= :dateTo AND " 
      "el.name IN :inclList") 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010
  • Rayone GB

    Rayone GB

    14 Temmuz 2007