Есть ли способ использовать оператор в Hibernate, который вы не знаете заранее? Вот пример кода для контекста, показывающий, как я хотел бы, чтобы он работал:
s.createQuery("select from :table where column :op :value");
Это не работает, поэтому я написал эту switch
логику:
public List<Model> findByProperty(final String propertyName,
final String operator,
final String value) {
final Session s = getSession();
Criteria criteria = s.createCriteria(Foo.class);
// How could I dynamically use the type of operator
// through Hibernate without perhaps a switch on operator
switch (operator) {
case '=':
criteria = criteria.add(Expression.eq(propertyName, value);
// ...
}
return criteria.list();
}
Это работает, но есть ли другой способ?
Спасибо!