![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Killer_13 |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Решил решить свою проблему грубым способом, но он работает. Заносит записи в бд, но я не могу их прочитать!
Из консоли, все запросы проходят, все выдает, даже ArrayList-ы печатаются, а вот насмотрелся примеров, делаю 1в1, но все-равно не могу извлечь из бд? Что не так? Вот запрос,
Класс.
запись в таблице есть, теперь осталось ее извлечь или целым классом или по одному параметру, все-равно. пробовал вот так
- в итоге ничего не получил, все по нулям. Если нельзя вытащить отдельный объект, то как вытащить ArrayList и String? И как можно сохранить объект boardMatrix? В нем 144 значения Integer. Hibernate говорит, что значение сл велико для одной колонки. :( Спасибо за помощь, и подсказки.! |
||||||
|
|||||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Killer_13,
Какие ошибки выдает Hibernate? Какой SQL код генерит (отладка в настройках Hibernate включена)?
У Вас класс SaveParams, почему from games ? Параметр хорошо бы добавлять через setParameter(). -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Killer_13 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Вот конф
- переименовал таблицу в saveparams. Что в первом случае, что теперь получаю 1 объект с непонятными числами int. В чем подвох? Спасибо! |
||||
|
|||||
Vasay |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Думаю, нужно еще добавить аннотацию @ElementCollection и можно добавить @CollectionTable http://docs.jboss.org/hibernate/core/3.6/r...ctions-ofvalues
Так. Вы пытаетесь выполнить SQL (а не HQL ) запрос (а почему бы не HQL?). Тогда смотрите: http://docs.jboss.org/hibernate/orm/3.3/re...l/querysql.html В этом случае Hibernate понятия не имеет что Вы там извлекаете с помощью SQL и возвращает List of Object arrays (Object[]) Как я понимаю Object[] в Вашем случае содержит один элемент (так как Вы запрашиваете только moveHystoryPlayer1). И, я думаю, это будет одно число - id по которому таблица games связана с таблицей moveHystoryPlayer1 (или как Вы ее там самостоятельно назовете с помощью аннотации @CollectionTable ). Т.е. я думаю, для извлечения ArrayList<String> Вам нужен еще один запрос. п.с. юзайте HQL. Это сообщение отредактировал(а) Vasay - 12.6.2012, 02:40 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
||||
|
|||||
Killer_13 |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
![]()
- да, 1 элемент. но в нем до сотни int значений.
Спасибо! |
||||||
|
|||||||
Vasay |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Вообще нужно. Но если у Вас нет ошибок и записи добавляются в базу - то, возможно, Hibernate сам додумался что у Вас тут коллекция. И создал дополнительные таблицы ( А создал? )
Потому что применение SQL в Hibernate - это крайний вариант, применяемый, когда нужно использовать специфические для конкретной БД возможности. В Вашем случае он не актуален. Используйте HQL Тогда не знаю что он Вам там извлекает.
Ну добавьте аннотацию @ElementCollection для коллекций. И используйте HQL Примерно такой код должен быть:
Должны получить List SaveParams удовлетворяющих условию по serverName. Извлекаете конкретный элемент из List, затем list MoveHystoryPlayer1 ArrayList moveHystoryPlayer1 = ((SaveParams)listOfSaveParams.get( номер элемента )).getMoveHystoryPlayer1() п.с. писал на коленке, так что извините, если где что-то не то написал. Это сообщение отредактировал(а) Vasay - 12.6.2012, 11:39 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
||||||
|
|||||||
Killer_13 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
- нет. не создал, только одна таблица. - понял - :(
- предельно ясно, осталось протестировать. Гррр, сейчас жаль не могу. на работе..
|
||||
|
|||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Должны быть созданы таблицы для ArrayList-ов. Они не создались, наверно, потому что не было аннотации @ElementCollection
да up Но если будете использовать lazy loading (по умолчанию включена) то List-ы будут загружаться только при обращении к ним. Это сообщение отредактировал(а) Vasay - 12.6.2012, 12:16 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Killer_13 |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
иии, если можно - для меня остался один неясный вопрос..
Пас. |
||||||
|
|||||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Как они могут печататься, если для их хранения не создано таблиц? -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
||||
|
||||
Vasay |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
А что у Вас в БД? Если таблица только одна, то, наверно, там просто дублируются записи для каждого значения в коллекции. Добавлено @ 14:49
Что из себя представляет boardMatrix ? Двумерный массив 12х12 ? Это сообщение отредактировал(а) Vasay - 12.6.2012, 14:50 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
||||
|
|||||
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
- да. мене посоветовали кастовать в строку, и заганять в базу как строку. Делал как строку. но в итоге лажа получается, так как разные числа, и плюс и минус и нули и так д... Поэтому запихнул все в ArrayList. |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Так что туда записывается? Как записывается Ваши ArrayList-ы, что Вы потом их извлекаете (то что таблица только одна - это не правильно). как строку - не надо. ArrayList, пожалуй, правильно. Не записывается, наверно, потому что не правильно что-то сконфигурировали. Покажите код. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Vasay - вечерком закину. Спасибо.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |