2011-01-25 17 views
1

私は、Hibernateマッピングファイルを使用して、あるコンポーネントを別のコンポーネントにネストすることができます。たとえば :JPAの複数レベルの入れ子コンポーネント

<?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="com.hibernaterecipes.chapter3"> 
<class name="Orders" table="BOOK_ORDERS"> 
<id name="id" type="long" column="ID"> 
<generator class="native" /> 
</id> 
<component name="weekdayContact" class="Contact"> 
    <property name="recipient" type="string" column="WEEKDAY_RECIPIENT" /> 
    <component name="phone" class="Phone"> 
     <property name="areaCode" type="string" column="WEEKDAY_AREACODE" /> 
     <property name="telNo" type="string" column="WEEKDAY_TELEPHONE" /> 
    </component> 
    <property name="address" type="string" column="WEEKDAY_ADDRESS" /> 
</component> 
<component name="holidayContact" class="Contact"> 
    <property name="recipient" type="string" column="HOLIDAY_RECIPIENT" /> 
    <component name="phone" class="Phone"> 
     <property name="areaCode" type="string" column="HOLIDAY_AREACODE" > 
     <property name="telNo" type="string" column="HOLIDAY_TELEPHONE" /> 
    </component> 
    <property name="address" type="string" column="HOLIDAY_ADDRESS" /> 
</component> 
    </class> 
    </hibernate-mapping> 

私の理解あたりとして、私たちは理解し、正しいJPA.Isと同じことを行うことはできませんか?

答えて

1

わたしの理解しているように、JPAでも同じことができます。理解は正しいですか?

はい、いいえ。 JPA 1.0は、Basic annotationのルールに従ったプロパティのみをサポートしています。つまり、他の@Embeddedをサポートしていません。 JPA 2.0はこれをサポートしています。

+0

+1ここでは「リレーションシップ」という単語が混乱しますが、 – axtavt

+0

良い点。私はこれを明確にしようとする答えを変えました。 – jpkrohling

+0

@parenon:私はそれらが "関係"ではなく "特性"であることを意味しました。 – axtavt

関連する問題