2012-02-16 19 views
0

は、私は次のコードHibernateコールセパレーションジェネレータはどのようにして動作しますか?

getEntityManager().persist(country.getCity().getClinic().getPatient()); 

を持っているし、ログに

Hibernate: 
select 
    next value for patient_seq 
from 
    dual_patient_seq 
Hibernate: 
    select 
     next value for clinic_seq 
    from 
     dual_lclinic_seq 
Hibernate: 
    select 
     next value for city_seq 
    from 
     dual_city_seq 

を次のSQLを参照してくださいしかし、「国のためsequanceは生成されません。すべてのXMLは大丈夫です。 Whanは問題ですか?おかげさまで

+1

エンティティおよび特にリレーションシップに関する詳細はありませんか?カスケードなどが定義されていますか? '国家 'は既に存続するのだろうか? – Thomas

+0

シーケンスは、通常、エンティティクラス/ hbm xml'sで定義されています。シーケンスジェネレータがcountryに定義されているかどうかを確認します。 – Rocky

答えて

0

Thx、Thomas!問題は「カスケード」でした。私は

<set name="countrysPersistent" lazy="true" inverse="true" cascade="all"> 
    <key column="country" /> 
     <one-to-many class="Country" /> 
     </set> 

<set name="countrysPersistent" lazy="true" inverse="true" > 
    <key column="country" /> 
     <one-to-many class="Country" /> 
     </set> 

からCity.hbm.xmlを変更すると、それは参考になりました!

関連する問題