[hibernate-issues] [Hibernate-JIRA] Commented: (ANN-598) Add ON clause to @ForeignKey

Daniel Jimenez (JIRA) noreply at atlassian.com
Wed May 6 20:13:14 EDT 2009


    [ http://opensource.atlassian.com/projects/hibernate/browse/ANN-598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=33118#action_33118 ] 

Daniel Jimenez commented on ANN-598:
------------------------------------

+1 from me as well. 

All of our users from the "users" table have FKs to a few other tables. In most cases if the row in the other table is deleted we obviously would not want the whole user deleted, instead just that field set to null. As an example, you would not want a user deleted just because their default checking account was deleted in another table. Instead you'd rather set their default checking account to null, because they may have a savings account, CD, money market, etc.

I quickly looked over the source for the OnDelete and OnDeleteAction annotations, which led me to AnnotationBinder. Having never looked at any of the Hibernate source before, I very quickly got overwhelmed.

Daniel

> Add ON clause to @ForeignKey
> ----------------------------
>
>                 Key: ANN-598
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-598
>             Project: Hibernate Annotations
>          Issue Type: New Feature
>          Components: binder
>            Reporter: Christian Bauer
>
> More important than it sounds:
>     @org.hibernate.annotations.ForeignKey(name = "FK_FEED_DIRECTORY_ID")
> I need ON CASCADE DELETE on many of my foreign keys, so I have to do this right now via:
> <hibernate-mapping>
>     <database-object>
>         <create>
>             alter table FEED drop constraint FK_FEED_DIRECTORY_ID;
>             alter table FEED add constraint FK_FEED_DIRECTORY_ID foreign key (DIRECTORY_ID) references NODE on delete cascade;
>         </create>
>         <drop></drop>
>     </database-object>
> </hibernate-mapping>
> This is a bit annoying, especially since @JoinColumn(columnDefinition) is also not an option - I don't want to hardcode my HSQL datatypes.
> So we should accept a parameter on @ForeignKey (I know that the Hibernate binder doesn't have that notion at all, we need it in native Hibernate as well) that accepts "[ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}];" and does the right thing during schema export.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list