EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

چگونه رابطه یک به چند هایبرنت را در فایل xml در spring تعریف کنیم؟

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

فرض کنیم دو کلاس 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 دو جدول را به هم متصل می کند.

  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت