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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate mapping, Hibernate mapping для веб-голосования 
:(
    Опции темы
greef
Дата 20.12.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток. Знакомлюсь с Hibernate. Прошу помощи с mapping.

Есть следующая бд (2 таблицы):

Voting:
1) Questions (QuestionID, Question);
2) Answers (AnswerID, Answer, Sum, QuestionID).
И связь один-ко-многим.

Web-голосование, с 2 таблицами - в первой содержиться список вопросов, во второй ответы + количество голосов по каждому.

Тогда hibernate mapping будет для Question будет следующим
Код

<hibernate-mapping>
    
    <class name="com.test.Question" table="Questions">
        <id name="id" column="QuestionID" unsaved-value="0">
            <generator class="increment"/>
        </id>
        <property name="question" column="Question"/>

        <set name="answers">
            <key column="Question"/>
            <one-to-many 
                class="com.test.Answer"/>
        </set>
    </class>

</hibernate-mapping>
 

hibernate mapping для Answer будет следующим 

Код

<hibernate-mapping>

    <class name="org.com.Answer" table="Answers">

        <id name="id" column="AnswerID" unsaved-value="0">
            <generator class="increment"/>
        </id>
        <property name="answer" column="Answer" not-null="true"/>
        <property name="sum" column="Sum"/>

    </class>

</hibernate-mapping>


Модель Answer и Question:
Код

....
public class Question {
    private Long id;
    private String question;
    private Set answers;
    // Getters and Setters
....

....
public class Answer {
    private Long id;
    private String answer;
    private String sum;
    // Getters and Setters
....



Все верно? В результате будут созданы 2 таблицы (структура в начале поста).
Да и еще вопрос это связь one-to-many, а чем она олична от many-to-one и какую связь в данном случае мне лучше применять.
Заранее спасибо.
PM MAIL   Вверх
Kangaroo
Дата 21.12.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(greef @  20.12.2007,  13:22 Найти цитируемый пост)
Все верно?

На первый взгляд - да smile 


Цитата(greef @  20.12.2007,  13:22 Найти цитируемый пост)
Да и еще вопрос это связь one-to-many, а чем она олична от many-to-one и какую связь в данном случае мне лучше применять.

У тебя в классе Question множество (Set) Answer'ов. Поэтому для маппинга ты используешь one-to-many (один Вопрос к многим Ответам)
А вот если бы у тебя в классе Answer было поле типа Question (то есть там бы содержался вопрос к которому относится данный ответ), то ты бы использвал связь many-to-one в маппинга Answer'a.

Цитата(greef @  20.12.2007,  13:22 Найти цитируемый пост)
 какую связь в данном случае мне лучше применять.

Можна использовать обе связи, можна какую-нибудь одну. В зависимости от задачи...

Это сообщение отредактировал(а) Kangaroo - 21.12.2007, 19:29


--------------------
Lost....
PM MAIL MSN   Вверх
greef
Дата 24.12.2007, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Kangaroo @ 21.12.2007,  19:28)
Можна использовать обе связи, можна какую-нибудь одну. В зависимости от задачи...

А вот тут, если можно, подробнее...
Для web-голосования, что мне лучше использовать?
PM MAIL   Вверх
Kangaroo
Дата 24.12.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(greef @  24.12.2007,  00:21 Найти цитируемый пост)
А вот тут, если можно, подробнее...

Можно  smile 

При проектировании программы вы определяете связи между классами, в зависимости от задач и функций программы. Правильно? 
Потом в зависимости от этих связей вы и делаете маппинг.

Пример.
Администратор выбирает определенный вопрос, нужно вывести вопрос и все ответы на этот вопрос. Исходные данные, например, - id вопроса. Сразу видно, что там нужна связь от Вопроса к Ответам (у вопроса будет список ответов), то есть связь one-to-many.

Для какой-нибудь другой задачи нужно будет по Ответу получить Вопрос, на который был дан этот ответ. Тогда свзять many-to-one.

Цитата(greef @  24.12.2007,  00:21 Найти цитируемый пост)
Для web-голосования, что мне лучше использовать?

Это уже ваша задача - решить, что вам нужно....


--------------------
Lost....
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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