Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/UserGuide/JPA/Advanced JPA Development/Schema Generation/CascadeOnDelete"
< EclipseLink | UserGuide | JPA | Advanced JPA Development | Schema Generation
m |
|||
Line 3: | Line 3: | ||
|toc=n | |toc=n | ||
|eclipselink=y | |eclipselink=y | ||
− | |eclipselinktype=JPA}} | + | |eclipselinktype=JPA |
+ | |api=y | ||
+ | |apis=[http://www.eclipse.org/eclipselink/api/latest/eclipse/persistence/annotations/CascadeOnDelete.html CascadeOnDelete] | ||
+ | }} | ||
=@CascadeOnDelete= | =@CascadeOnDelete= | ||
− | . | + | --THIS PAGE IS IN PROGRESS -- |
+ | |||
+ | ON DELETE CASCADE is a database foreign key constraint option that automatically removes the dependent rows. | ||
+ | |||
+ | Use the <tt>@CascadeOnDelete</tt> annotation or the <tt>cascadeOnDelete</tt> property to specify that a delete operation performed on a database object is cascaded | ||
+ | on secondary or related tables. | ||
+ | |||
+ | {| border="1" cellpadding="2" | ||
+ | |+ ''CascadeOnDelete'' | ||
+ | |- | ||
+ | | '''On this...''" ||'''CascadeOnDelete does this...''' | ||
+ | |- | ||
+ | | Entity|| Defines that secondary or joined inheritance tables should cascade the delete on the database | ||
+ | |- | ||
+ | | OneToOne mapping|| The related object is deleted cascaded on the database. This is only allowed for mappedBy/target-foriegn key OneToOne mappings (because of constraint direction). | ||
+ | |- | ||
+ | |OneToMany mapping || The related objects are deleted cascaded on the database. | ||
+ | |- | ||
+ | |ManyToMany mapping || The join table is deleted cascaded on the database (target objects cannot be cascade even if private because of constraint direction). | ||
+ | |- | ||
+ | |DirectCollection || The direct table is deleted cascaded on the database. | ||
+ | |- | ||
+ | |AggregateCollection||The aggregate table is deleted cascaded on the database. | ||
+ | |} | ||
+ | |||
+ | |||
+ | <source lang="java"> | ||
+ | @Target(value={METHOD,FIELD,TYPE}) | ||
+ | @Retention(value=RUNTIME) | ||
+ | public @interface CascadeOnDelete | ||
+ | </source> | ||
+ | |||
+ | |||
+ | = Config files = | ||
+ | In the <tt>orm.xml</tt> descriptor file, specify cascade on delete as follows: | ||
+ | <source lang="xml"> | ||
+ | <entity cascadeOnDelete="true"> | ||
+ | <one-to-one cascadeOnDelete="true"> | ||
+ | <one-to-many cascadeOnDelete="true"> | ||
+ | <many-to-many cascadeOnDelete="true"> | ||
+ | </source> | ||
+ | |||
{{EclipseLink_JPA | {{EclipseLink_JPA | ||
|previous =[[EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Schema_Generation|Schema Generation]] | |previous =[[EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Schema_Generation|Schema Generation]] |
Revision as of 14:25, 31 January 2011
EclipseLink JPA
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API CascadeOnDelete
@CascadeOnDelete
--THIS PAGE IS IN PROGRESS --
ON DELETE CASCADE is a database foreign key constraint option that automatically removes the dependent rows.
Use the @CascadeOnDelete annotation or the cascadeOnDelete property to specify that a delete operation performed on a database object is cascaded on secondary or related tables.
'On this..." | CascadeOnDelete does this... |
Entity | Defines that secondary or joined inheritance tables should cascade the delete on the database |
OneToOne mapping | The related object is deleted cascaded on the database. This is only allowed for mappedBy/target-foriegn key OneToOne mappings (because of constraint direction). |
OneToMany mapping | The related objects are deleted cascaded on the database. |
ManyToMany mapping | The join table is deleted cascaded on the database (target objects cannot be cascade even if private because of constraint direction). |
DirectCollection | The direct table is deleted cascaded on the database. |
AggregateCollection | The aggregate table is deleted cascaded on the database. |
@Target(value={METHOD,FIELD,TYPE}) @Retention(value=RUNTIME) public @interface CascadeOnDelete
Config files
In the orm.xml descriptor file, specify cascade on delete as follows:
<entity cascadeOnDelete="true"> <one-to-one cascadeOnDelete="true"> <one-to-many cascadeOnDelete="true"> <many-to-many cascadeOnDelete="true">