From: <epb...@us...> - 2006-02-23 23:17:08
|
Update of /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/cfg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18186/metadata/src/java/org/hibernate/cfg Modified Files: AnnotationBinder.java Log Message: ANN-259 (Radim Tlusty, Mat?j Kraus) Index: AnnotationBinder.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java,v retrieving revision 1.177 retrieving revision 1.178 diff -u -d -r1.177 -r1.178 --- AnnotationBinder.java 17 Feb 2006 18:47:18 -0000 1.177 +++ AnnotationBinder.java 23 Feb 2006 23:16:58 -0000 1.178 @@ -1112,12 +1112,14 @@ Cascade hibernateCascade = property.getAnnotation( Cascade.class ); NotFound notFound = property.getAnnotation( NotFound.class ); boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); + OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); + boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); bindManyToOne( getCascadeStrategy( ann.cascade(), hibernateCascade ), (Ejb3JoinColumn[]) joinColumns, ann.optional(), getFetchMode( ann.fetch() ), - ignoreNotFound, inferredData.getPropertyName(), + ignoreNotFound, onDeleteCascade, inferredData.getPropertyName(), inferredData.getClassOrElementName(), ReflectionManager.INSTANCE.toXClass( ann.targetEntity() ), inferredData.getDefaultAccess(), @@ -1131,12 +1133,14 @@ Cascade hibernateCascade = property.getAnnotation( Cascade.class ); NotFound notFound = property.getAnnotation( NotFound.class ); boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); + OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); + boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); bindOneToOne( getCascadeStrategy( ann.cascade(), hibernateCascade ), (Ejb3JoinColumn[]) joinColumns, ann.optional(), getFetchMode( ann.fetch() ), - ignoreNotFound, inferredData.getPropertyName(), + ignoreNotFound, onDeleteCascade, inferredData.getPropertyName(), inferredData.getClassOrElementName(), ReflectionManager.INSTANCE.toXClass( ann.targetEntity() ), inferredData.getDefaultAccess(), @@ -1611,7 +1615,7 @@ private static void bindManyToOne( String cascadeStrategy, Ejb3JoinColumn[] columns, boolean optional, FetchMode fetchMode, - boolean ignoreNotFound, String propertyName, + boolean ignoreNotFound, boolean cascadeOnDelete, String propertyName, String returnedClassName, XClass targetEntity, String propertyAccessorName, PropertyHolder propertyHolder, boolean unique, boolean isIdentifierMapper, ExtendedMappings mappings ) { @@ -1625,6 +1629,7 @@ } value.setFetchMode( fetchMode ); value.setIgnoreNotFound( ignoreNotFound ); + value.setCascadeDeleteEnabled( cascadeOnDelete ); value.setLazy( fetchMode != FetchMode.JOIN ); if ( !optional ) { for ( Ejb3JoinColumn column : columns ) { @@ -1663,7 +1668,9 @@ Ejb3JoinColumn[] columns, boolean optional, FetchMode fetchMode, - boolean ignoreNotFound, String propertyName, + boolean ignoreNotFound, + boolean cascadeOnDelete, + String propertyName, String returnedClassName, XClass targetEntity, String propertyAccessorName, @@ -1705,6 +1712,7 @@ value.setReferencedEntityName( targetEntity.getName() ); } value.setFetchMode( fetchMode ); + value.setCascadeDeleteEnabled( cascadeOnDelete ); value.setLazy( fetchMode != FetchMode.JOIN ); if ( !optional ) value.setConstrained( true ); @@ -1723,16 +1731,7 @@ mappings) ); } -// if ( ! isDefault( mappedBy ) ) value.setReferencedPropertyName( mappedBy ); -// -// String propertyRef = value.getReferencedPropertyName(); -// if ( propertyRef != null ) { -// mappings.addUniquePropertyReference( -// value.getReferencedEntityName(), -// propertyRef -// ); -// } - //value.createForeignKey(); + PropertyBinder binder = new PropertyBinder(); binder.setName( propertyName ); binder.setValue( value ); @@ -1746,8 +1745,8 @@ else { //has a FK on the table bindManyToOne( - cascadeStrategy, columns, optional, fetchMode, ignoreNotFound, propertyName, returnedClassName, - targetEntity, + cascadeStrategy, columns, optional, fetchMode, ignoreNotFound, cascadeOnDelete, + propertyName, returnedClassName, targetEntity, propertyAccessorName, propertyHolder, true, isIdentifierMapper, mappings ); } |