Ограничения гибернации: объект между двумя DB.table.propertyName - PullRequest
1 голос
/ 07 октября 2011

Это обычное использование Hibernate между ограничениями

Criterion critDate = Restrictions.between("fromDatePropName", model.getFromDate(), model.getToDate()) ;

Но я хочу ограничение между Object с двумя или более propertyName в спящем режиме.

Например: я хочу, чтобы Дата '2011-10-01' находилась между tableName.fromDatePropName и tableName.toDatePropName

Вот как я хочу поступить с одним методом:

Пример:

Criterion critDate = Restrictions.between(model.getDate(), "fromDatePropName", "toDatePropName") ;

Visual Ex:

Вот SQL, сгенерированный с помощью:

Criterion critDate = Restrictions.between("fromDatePropName", model.getFromDate(), model.getToDate()) ;
Criterion critDate = Restrictions.between(  "toDatePropName", model.getFromDate(), model.getToDate()) ;

...
AND tableName.fromDatePropName  between DATE '2011-10-01' and DATE '2011-10-31' 
AND tableName.toDatePropName    between DATE '2011-10-01' and DATE '2011-10-31' 
...

Но это SQL, который я хочу сгенерировать:

Criterion critDate = Restrictions.between(model.getDate(), "fromDatePropName", "toDatePropName") ;

...
AND DATE'2011-10-01'  between tableName.fromDatePropName and tableName.toDatePropName
...

Спасибо за ваши ответы.

1 Ответ

1 голос
/ 07 октября 2011

Разве это не должно быть:

Restrictions.between("date", model.getFromDate(), model.getToDate())

В javadoc Restrictions.between() имя свойства является первым аргументом и относится к сущности, к которой относится критерий.

Если вы действительно хотите указать ограничение, например, требовать, чтобы свойство корневого объекта находилось между двумя другими свойствами одного и того же объекта, вы можете использовать Restrictions.geProperty() и Restrictions.leProperty() методов вместо Restrictions.between().

Restrictions.geProperty("date", "fromDate")

и

Restrictions.leProperty("date", "toDate")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...