From: <hib...@li...> - 2006-05-01 03:25:12
|
Author: epbernard Date: 2006-04-30 23:25:02 -0400 (Sun, 30 Apr 2006) New Revision: 9840 Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/Boy.java Log: ANN-289 add some safety belts for Gavin on @ToOne and @column(s) Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java =================================================================== --- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-05-01 01:05:59 UTC (rev 9839) +++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-05-01 03:25:02 UTC (rev 9840) @@ -1180,6 +1180,14 @@ } else if ( property.isAnnotationPresent( ManyToOne.class ) ) { ManyToOne ann = property.getAnnotation( ManyToOne.class ); + + //check validity + if ( property.isAnnotationPresent( Column.class ) + || property.isAnnotationPresent( Columns.class ) ) { + throw new AnnotationException( "@Column(s) not allowed on a @ManyToOne property: " + + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) ); + } + Cascade hibernateCascade = property.getAnnotation( Cascade.class ); NotFound notFound = property.getAnnotation( NotFound.class ); boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); @@ -1204,6 +1212,14 @@ } else if ( property.isAnnotationPresent( OneToOne.class ) ) { OneToOne ann = property.getAnnotation( OneToOne.class ); + + //check validity + if ( property.isAnnotationPresent( Column.class ) + || property.isAnnotationPresent( Columns.class ) ) { + throw new AnnotationException( "@Column(s) not allowed on a @OneToOne property: " + + StringHelper.qualify( propertyHolder.getPath(), inferredData.getPropertyName() ) ); + } + //FIXME support a proper PKJCs boolean trueOneToOne = property.isAnnotationPresent( PrimaryKeyJoinColumn.class ) || property.isAnnotationPresent( PrimaryKeyJoinColumns.class ); Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/Boy.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/Boy.java 2006-05-01 01:05:59 UTC (rev 9839) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/collectionelement/Boy.java 2006-05-01 03:25:02 UTC (rev 9840) @@ -6,15 +6,16 @@ import java.util.Map; import java.util.Set; import javax.persistence.AttributeOverride; +import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; -import javax.persistence.AttributeOverrides; import org.hibernate.annotations.CollectionOfElements; import org.hibernate.annotations.IndexColumn; @@ -119,7 +120,8 @@ this.characters = characters; } - @CollectionOfElements + @CollectionOfElements(fetch = FetchType.EAGER) + //@Where(clause = "b_likes=false") public Set<CountryAttitude> getCountryAttitudes() { return countryAttitudes; } |