![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| dEEp |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
думаю в коде всё ясно. пытаемся получить все записи, удовлетворяющие запросу. Дело в том, что получаю результат:
А кординаты должны быть разные. В базе всё хорошо. Пробовал сделать аналогично сделать вывод с использвоанием Spring'a, так там всё хорошо. Кстати говоря, кол-во строк нормальное. Т.е. должны быть выведены 3 строки с одинаковым естесственно id и разными координатами. У кого-нибудь есть мысли, почему так возникает? Если нужны конф.файлы - выложу. Это сообщение отредактировал(а) dEEp - 21.5.2009, 19:01 |
||||
|
|||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Похоже, что джойнится еще одна таблица из-за какой-нибудь связи. Хорошо бы посмотреть оригинальный SQL, который генерится.
Мы решали что-то вроде Criteria cr = session.createCriteria(StockTable.class); cr.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); |
|||
|
||||
| dEEp |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
а генерит он вот что:
т.е. всё хорошо. Edge.hbm.xml
hibernate.cfg.xml
про "Criteria..." понял. Но это не помогло.
это убрал. мне как раз и нужны эти 3 записи, но с разными координатами. А так получится запись будет одна. Это сообщение отредактировал(а) dEEp - 21.5.2009, 19:41 |
||||||||
|
|||||||||
| dEEp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
люди, хотя бы скажите что это может быть. вряд ли джойнится лишняя таблица. я полагаю что это специфика hibernate. возможно он полагает, что если поиск идёт по id, то запись будет одна. тогда странно, что выводит её трижды.
|
|||
|
||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 4 Всего: 10 |
Кто ж делает Id неуникальным? Без нормьного id падает производительность да и логика страдает)) Создай нормальный id, а если тебе еще какой-то вторичный id нужен, то сделай еще одно поле в классе.
-------------------- |
|||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Включи полные логи Хайбернета и попробуй проследить по ним весь путь - от выполнения запроса до сохранения результа в список.
-------------------- Lost.... |
|||
|
||||
| dEEp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
пока этого не делал, но сделаю. Сейчас объяснили, что это из-за ключа, который не является уникальным. Предложили сделать объединение через composite-id, но пока не разобрался как и чего с ним делать. о да! а то я не знаю что id должен быть уникальным. вы как ребёнку объясняете. Вот такой есть id и его править не могу. Вообще базу трогать не могу. Моя задача подрубиться к базе через Hibernate. А до того что там в базе написано всё криво - мне нет дела. На Spring'ах вообще пробелм не возникает. Но нужен Hibernate. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А на одноколесном велосипеде вокруг мира не надо ?
У каждого пакета и технолоогии есть определенные ограничения. И если у тебя ID не уникальный - то Hibernate тут работать нормально не сможет. Либо пиши свой собсвтенный. Как-то странно выглядит - надо на Hibernate и все тут. Кстати причем тут Spring - я не понял. |
|||
|
||||
| dEEp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
такой задачи не стояло. сказали composite-id спасёт. тем более учитывая то, что максимум что от базы надо - выборка с параметром и всё. Ну как сказали, так и делаю. JdbcTemplate (http://static.springframework.org/spring/docs/2.5.x/reference/jdbc.html) |
|||
|
||||
| Старовъръ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 4 Всего: 10 |
В Хибернете есть возможность делать sql-запросы. Look here. Полагаю это может спасти -------------------- |
||||
|
|||||
| dEEp |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Ну это понятно. Там по сути более "крутой" jdbc.
нужно обоснование. в документации hibernate я не нашёл, что он не умеет работать с таблицами, в которых ключ не уникален. если найти мануал, то можно попытать удачу.
проблемы это не решает. так я мог бы и с JDBC решить всё. |
||||
|
|||||
| Старовъръ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 4 Всего: 10 |
-------------------- |
||||
|
|||||
| dEEp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| dEEp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Всё ребят. Спасибо вам всем большое. Сейчас правят базу. Будет уникальный id. Спасение нашлось. =)
Поднял бы вам всем репутацию, но не могу. Постов мало. Это сообщение отредактировал(а) dEEp - 22.5.2009, 15:19 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |