چگونه رابطه یک به چند هایبرنت را در فایل xml در spring تعریف کنیم؟
- فرشته حقیقی 4 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
فرض کنیم دو کلاس person و Address داریم که رابطه یک به چند (one to many) دارند. یعنی هر شخص می تواند چند آدرس داشته باشد.
CREATE TABLE PERSON (
ID integer identity primary key,
FIRST_NAME varchar(50) not null,
LAST_NAME varchar(50) not null,
CREATED timestamp,
CONSTRAINT IDX_PERSON_ID PRIMARY KEY (ID) );
CREATE TABLE ADDRESS (
ID integer identity primary key,
PERSON_ID integer,
ADDRESS varchar(255),
CITY varchar(50) not null,
STATE varchar(50) not null,
ZIP_POSTAL varchar(30) not null,
CREATED timestamp,
CONSTRAINT IDX_ADDRESS_ID PRIMARY KEY (ID),
CONSTRAINT FK_ADDRESS_PERSON_ID FOREIGN KEY (PERSON_ID) REFERENCES PERSON(ID) on delete cascade
);
.
در فایل xml مربوط به person در spring بصورت زیر عمل می کنیم:
Person.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.springbyexample.orm.hibernate3.bean" default-access="field">
<class name="Person" table="PERSON">
<id name="id" column="ID">
<generator class="native"/> </id>
<property name="firstName" column="FIRST_NAME" />
<property name="lastName" column="LAST_NAME" />
<set name="addresses" lazy="true" inverse="true">
<key column="PERSON_ID"/>
<one-to-many class="Address"/>
</set>
<property name="created" column="CREATED" />
</class>
</hibernate-mapping>
در فایل xml مربوط به address در spring نیز بصورت زیر عمل می کنیم:
Address.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.springbyexample.orm.hibernate3.bean" default-access="field">
<class name="Address" table="ADDRESS">
<id name="id" column="ID">
<generator class="native"/>
</id>
<property name="address" column="ADDRESS" />
<property name="city" column="CITY" />
<property name="state" column="STATE" />
<property name="zipPostal" column="ZIP_POSTAL" />
<property name="created" column="CREATED" />
</class>
<many-to-one name="Person" class="PERSON"
column="PERSON_ID" not-null="true"/>
</hibernate-mapping>
PERSON_ID دو جدول را به هم متصل می کند.
- فرشته حقیقی 4 سال قبل پاسخ داد
- آخرین ویرایش 4 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید