Вы можете передать дополнительные атрибуты HTML методу TextBoxFor :
@Html.TextBoxFor(m => m.Foo, new { autofocus="autofocus"})
Редактировать:
Вы можете получить только autofocus=""
с:
@Html.TextBoxFor(m => m.Foo, new { autofocus=""})
Все встроенные помощники внутренне используют метод MergeAttribute класса TagBuilder , и он поддерживает атрибуты только в следующем формате: key="value"
.
Так что, если вам нужно только autofocus
, вам нужно написать свой собственный помощник с собственным HTML-компоновщиком.
Вы можете поместить два ограничения в свой HQL, одно, которое задает больше или равно началу даты, в которую вы выполняете поиск, и одно, которое указывает меньше, чем на следующий день.
т.е.
table.date >=11.06.2009 AND table.date < 11.07.2009
HQL (а также SQL) также допускает:
table.date between 11.06.2009 AND 11.07.2009
Имейте в виду, что между
всегда включающее, то есть оба > =
и <=
соответственно.
Подробнее о между
здесь: http://www.coding-dude.com/wp/java/hibernate-java/hibernate-hql-between-expression/
Я думаю, что есть два способа решить эту проблему:
Используйте критерий и добавьте запрос SQLRestriction . Ограничение могло бы иметь форму «trim ({alias} .date) =?». Проблемой здесь может быть преобразование входного параметра в правильный тип в Oracle (или другой СУБД). Вы можете указать необходимый тип (спящий режим) в качестве параметра, но если он зависит от базы данных, он будет жестко закодирован.
используйте формулу в вашем отображении гибернации. Сопоставление будет следующим:
<class name="Person"> <property name="birthDay" formula="trim(birthDay)"/> </class>
Теперь вы можете использовать систему ввода Hibernate для сравнения с java-объектом следующим образом:
s.createCriteria(Person.class)
.add(Restrictions.eq("birthDay", new java.sql.Date(System.currentTimeMillis())))
.list()
Одна проблема, с которой вы столкнетесь с обоими решениями, - это функция trim
, которая может не работать быть доступным в базе данных. Решение для этого (например, во время тестирования на HSQLDB) заключается в том, чтобы поместить import.sql в ваш тест пути к классам (он будет автоматически выбран Hibernate) и создать там процедуру или функцию. Вы также можете Изменить таблицу Человек добавить метку времени дня рождения
столбца в этот файл, чтобы сгенерированная схема работала.
вы можете использовать функцию trunc (), чтобы удалить часть времени в DATE столбец.
например: select * from emp, где trunc (emp_date)
извлекает все данные о сотрудниках, которые работали за 1 месяц до