understanding hibernate mapping tutorial

Here i have attached a  hibernate  Event.hbm.xml file.

I have a query here .

note , we have an entry
<id name="id" column="uid" type="long" unsaved-value="null">  

and also we have entry...

<set name="speakers" cascade="all">
            <key column="event_id"/>
            <one-to-many class="Speaker"/>
        </set>


does that mean hibernate will automatically understand  "id" column  in Event table is a foreign key  "event_id"  column in Speaker table ?

How hibernate will understand that ?i don't see any foreign key tag in the mapping file ....so i am bit confused at this part.

I am not sure , how hibernate will relate these two column .  because i think whenever a value say "1" is saved in "id" field , there will also "1" be saved in event_id column because of this mapping file....right ?



<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
 
<hibernate-mapping>
    <class name="Event" table="events">
        <id name="id" column="uid" type="long" unsaved-value="null">
            <generator class="increment"/>
        </id>
        <property name="name" type="string" length="100"/>
        <property name="startDate" column="start_date"
                  type="date"/>
        <property name="duration" type="integer"/>
        <many-to-one name="location" column="location_id" class="Location"/>
        <set name="speakers" cascade="all">
            <key column="event_id"/>
            <one-to-many class="Speaker"/>
        </set>
        <set name="attendees" cascade="all">
            <key column="event_id"/>
            <one-to-many class="Attendee"/>
        </set>
    </class>
</hibernate-mapping>

Open in new window

cofactorAsked:
Who is Participating?
 
objectsConnect With a Mentor Commented:
up to you, not necessary to make it work.
0
 
objectsCommented:
>            

that specifies which column is the foreign key for a Speaker
And as it is specified in the Event mapping then it relates to the Event class

0
 
cofactorAuthor Commented:
the DDL has been given as below in the tutorial

create table events (uid int ,
name varchar,
start_date date,
duration integer,
location_id int)


create table speakers (uid int,
firstName varchar,
lastName varchar,
event_id int)


but  there is no FK constraint put in this  DDL  .....shall  we need to put constraints here ?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.