Ich entwickle eine Anwendung, in der ich Suchfunktionalität benötige, ich möchte HQL-Abfrage schreiben, die dynamisch nach Parametern erstellt. Momentan habe ich 4 Parameter, während die Suche nach allen Parametern erforderlich ist oder 1 oder 2 oder 3 Parameter, je nachdem, wie der Benutzer suchen möchte.dynamisch Abfrage in HQL mit optionalen Parameter?
public List<Plot> fetchSearchedPlots(int plotType, String plotSize, String min, String max)
{
Session session = sessionFactory.getCurrentSession();
List<Plot> searchedLists = new ArrayList<Plot>();
String query = "FROM Plot where type = ? and size = ? and price >= ? and price <= ?";
searchedLists = (List<Plot>)session.createQuery(query)
.setInteger(0, plotType)
.setString(1, plotSize)
.setString(2, min)
.setString(3, max).list();
return searchedLists;
}
dies für alle vier Parameter meine allgemeine Abfrage, jetzt muss ich eine Suchabfrage schreiben, in dem ich mehrere optionale Parameter verwenden, wie diese Abfrage mit optionalen Parametern machen? freundlicherweise meine Abfrage in dynamisch optionale Parameter Abfrage konvertieren? Dank
Vielleicht haben Sie es sich mit dieser Info umwandeln kann http://stackoverflow.com/questions/12199433/jpa-criteria-api-with-multiple-parameters – RubioRic
ich denke, es nicht das, was i Ich frage – Ahmad
Sind Sie sicher? Hast du die angenommene Antwort gelesen? Was ist dein genaues Problem mit dieser Antwort? Sie müssen eine CriteriaQuery erstellen, indem Sie nur die benötigten Prädikate hinzufügen. Sie können eine Liste abrufen, die die getResultList-Methode aufruft, sobald Sie Ihre Abfrage erhalten haben. – RubioRic