Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibernate и сохранение коллекций


Автор: kkorsakoff 26.9.2006, 10:43
Помогите составить правильный мэппинг.

Сохраняю объект Clickstream. По сути представляет собой описание кликов по сайту в пределах одной сессии. Класс не мой, не имеет никакого ID.
Для использования с Hibernate создал класс обертку DatabaseClickstream, добавляющий Long id.

Код

    <class name="com.clivetor.pws.pwsadmin.data.DatabaseClickstream" table="clickstreams">

        <id name="id" column="id">
            <generator class="native"/>
        </id>


        <property name="hostname" column="host"/>
        <property name="initialReferrer" column="initial_referer"/>
        <property name="lastRequest" column="last_click_timestamp" type="timestamp"/>
        <property name="start" column="first_click_timestamp" type="timestamp"/>

        <set name="stream" table="clickstream_clicks"
             cascade="save-update,lock">
            <key column="clickstream_id"/>
            <one-to-many class="com.opensymphony.clickstream.ClickstreamRequest"/>
        </set>


    </class>



Все бы хорошо, да класс Clickstream имеет свойство List stream (собственно клики, содержат хост, порт, урл, время и т.д.)

Вот с этим и проблема, не пойму как мне замэппить его.
То есть надо сконфигурировать так, чтобы в таблицу clickstream_clicks писалось что-то вроде

| clickstream_id | click_id | ....остальные свойства ClickstreamRequest

Как сделать, чтобы при записи каждого нового объекта DatabaseClickstream нумерация click_id начиналась с нуля. Это что-ж за generator такой?


Автор: Sun 29.9.2006, 15:01
Цитата(kkorsakoff @  26.9.2006,  07:43 Найти цитируемый пост)
Как сделать, чтобы при записи каждого нового объекта DatabaseClickstream нумерация click_id начиналась с нуля. Это что-ж за generator такой?

Выкини нафик генератор и заполняй поле вручную. Это при условии если значения этого поля повторятся не будут. В противном случае надо будет добавить ещё одну проперть и в нее писать значения.

Автор: kkorsakoff 29.9.2006, 15:38
Видимо да, другого выхода нет.
Неужели для всех чужих классов приходится писать оберткиsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)