2010-11-29 18 views
1

Sagen wir, ich würdeEinen Parameter im Ruhezustand wiederverwenden Restrictions.sqlRestriction?

SELECT * from T where X < 12345 AND Y < 12345 

mit Restrictions.sqlRestriction zu tun. Die Konstante, mit der X und Y verglichen werden, ist in meinem Fall die gleiche. Idealerweise würde ich es nur einmal an die sqlRestriction übergeben und es durch seinen Index in der Argumentliste referenzieren. Ist das möglich?

Ich konnte es passieren zweimal zusammen, wie folgt aus:

Restrictions.sqlRestriction, aber ich bin zu fragen, ob es eine elegantere ist (, {12345, 12345} "X < und Y <?") Syntax, ähnlich wie C# 's Console.WriteLine erlaubt Sachen wie

Console.WriteLine("This {0} appears here also {0}", 12345) 

Antwort

2

Versuchen Sie, die Hibernate-Funktionen die Abfrage ‚von Hand‘ zu schreiben instad zu verwenden.

Zum Beispiel:

Query query = session.createQuery("SELECT t FROM T t WHERE t.X < :maxValue AND t.Y < :maxValue"); 
query.setInteger("maxValue", 12345); 
query.list()