cofactor
asked on
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 ?
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>
ASKER
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 ?
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 ?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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