Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate 
:(
    Опции темы
unkis
  Дата 7.3.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Ребята разбираюсь с hibernate, и у меня возникло пару вопросов.
и так :

1: Почему при @OneToMany hibernate cоздаёт три таблицы в БД а не две с дополнительным полем?

пример.

Код

@Entity
public class Person {
@OneToMany(cascade = CascadeType.ALL)
    public List<Address> getAddress() { return address; }
................
.............


и 
Код

@Entity
public class Address
{
.....
.....


резултат три таблицы Person <----------> Person_address <--------> Address

и 2 вопрос
Код

.....................
 Person px=findByName("Vasya");
 System.out.println(px.getAddress());
..................
..................
..................
..................
   private Person findByName(String name) {
        
        EntityManager em=emf.createEntityManager();
        Query q=em.createQuery("select person from Person as person where name=:param");
        q.setParameter("param",name);
        Person p=(Person)q.getSingleResult();
        em.close();
        return p;
    }

почему при таком коде выдает ошибку о том что сесия уже закрыта,  он что за списком адресов опять лезит в БД, я так понимаю что я получил обект и список адресов с ни же?
Хотя с другой стороны если у меня миллионный список то не имеет смысла его загружать сразу если он мне не нужен, но тогда как обратится к списку чтобы не открывать опять эту сесию и так далее?



--------------------
www.unkis.com
PM MAIL WWW   Вверх
unkis
Дата 8.3.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



люди 13 просмотров и ни одного ответа, неужелия такое тривиальное спрашиваю?

или я наверно просто уже всех за долбал с моими вопросами?


--------------------
www.unkis.com
PM MAIL WWW   Вверх
tux
Дата 8.3.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(unkis @  8.3.2007,  13:15 Найти цитируемый пост)
люди 13 просмотров и ни одного ответа, неужелия такое тривиальное спрашиваю?

А ты думаешь все 13 работали с Hibernate, причем с помощью аннотаций? Или просто предпочитаешь, чтобы тебе каждый что-нибудь ответил, не важно что? Я с Hibernate работал, с аннотациями никогда. Тем более не доверю никакому Хибернейту проектировать за меня базу данных, поэтому понятия не имею почему у тебя три таблицы получается. Хочешь накидаю кучу бредовых идей почему это случилось? 

По второму вопросу. У Hibernate все связи между классами определяются по дефолту как lazy. Если хочешь сделать так, чтобы подгружалось все сразу, надо где-то установить lazy="false". Как это делается аннотациями не знаю.
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.3280 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.