![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Здравствуйте.
Столкнулся с непростой задачей. Есть таблица в которой есть колонка с datetime. Через String получаю дату полною либо частично например: "2012-06-30 18:00", "2012-06-30", "06-30" Нужно както сделать запрос с hibernate и получить все объекты которые совпадают. С SQL получается очень громадный код, с Hibernate search тоже чтото ненахожу. Что делать незнаю |
|||
|
||||
Samotnik |
|
||||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
Какой у нее тип? Если хранится дата, то нужно работать с этим полем, как с датой, зачем получать стринг?
можно использовать критерию например:
Либо HQL
|
||||||
|
|||||||
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Да дело в том что пользователь может ввести дату с временем абы как. Т.е. например только час или только месяц с днём. (ведь это поиск)
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
||||
|
||||
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Да но мне поиск надо сделать.
Т.е. Есть поле в таблице datetime и получаю например какую-либо дату(с временем) ввиде String (например "2012-06-30 18:00", "2012-06-30", "06-30") Нужно по String (такой тип так как дата введённая нецелая) сделать запрос в таблицу и получить элементы где datetime имеет например дату 06-30("месяц-день") такой-же, но при этом час, минута, год может быть любой. Добавлено через 45 секунд В db она лежит в нормальном виде. Например 2012.05.30 14:00:00,000000000 Добавлено через 2 минуты и 7 секунд "Подводные камни" |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
Ccoder,
1. Это не подводные камни. Это вы сами себе костылей наставили, а теперь пытаетесь со своими же костылями работать. Если хранится дата, зачем пытаться работать с ней, как со стрингами? 2. Раз такое дело, пробуйте использовать SimpleDateFormat, для перевода String -> Date. И работать всё же с датами, как с типом преднезначеном для даты. 3. Если уж вообще, совсем никак не можете/хочете работать с типом Date, то можно использовать SQL, и String как дату. Запросы писать вида:
Т.е. открывать sql wildcards и смотреть что можно сделать Вобщем-то мега сложного ничего нет. ![]() |
|||
|
||||
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Слушай, а знаешь ты меня подтолкнул на хорошую мысль
Только надо ещё TO_CHAR Добавлено через 2 минуты и 24 секунды Ещёб интересно как три вида подстроки т.е. "%substring", ""%substring%", "substring%" не писать три раза. Т.е. "%substring" AND "%substring%" AND "substring%" И всё это както сделать через hibernate Добавлено через 3 минуты и 42 секунды Там какая страшная большая технология есть - hibernate search. Только это наверное не для меня. Мне только нужно както с hibernate сделать запрос на строку в которой есть подстрока. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
Я не работал с hibernate search. Но думаю, он тут не нужен.
Для hibernate нормально писать HQL. Просто продумай наиболее оптимальное условие. В данном случае, для тебя одного %substring% хватит. Если у тебя подстрока будет 06-30, то под это условие попадут все твои три даты: "2012-06-30 18:00", "2012-06-30", "06-30" |
|||
|
||||
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Ну спасибо. Помог хорошо ты мне
![]() |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |