[hibernate-issues] [Hibernate-JIRA] Commented: (ANN-472) @UniqueConstraint declaration is not friendly towards inheritance or reflection

Christopher G. Stach II (JIRA) noreply at atlassian.com
Wed Oct 25 11:07:04 EDT 2006


    [ http://opensource.atlassian.com/projects/hibernate/browse/ANN-472?page=comments#action_24985 ] 

Christopher G. Stach II commented on ANN-472:
---------------------------------------------

It should probably mimic the @Index annotation.  Having multiple @Unique annotations in the same bean with the same constraint name would alleviate the need for your composite attribute.  "constraintname" whould just be "name", like @Index.  This is something I've been wanting, too. :)

> @UniqueConstraint declaration is not friendly towards inheritance or reflection
> -------------------------------------------------------------------------------
>
>          Key: ANN-472
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-472
>      Project: Hibernate Annotations
>         Type: Improvement

>     Versions: 3.2.0.ga
>  Environment: Hibernate 3.2 GA
>     Reporter: Ted Bergeron

>
>
> The current way to define a composite unique constraint is limiting.
> @Table(name="tbl_sky",
>     uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}
> )
> Suppose I have an abstract base class called A that gives me Id and Name, subclassed by abstract class B that gives me Customer.  Then I have many concrete classes that subclass B.  For all of these, I'd want the combination of Name and Customer to be unique.  As I do not use @Table with abstract base classes, I currently have to repeat:  uniqueConstraints = {@UniqueConstraint(columnNames={"name", "customer_id"})}  on all concrete classes.  
> If we had an alternate way to define these constraints at the property level (as XDoclet did with hibernate 2), I could define this in the base classes and inherit the constraint declaration.
> The other need is that I would like to use reflection to scan the properties and apply proper validations in the view layer.  With @Column(unique = true) this is easy to do.  The view layer makes an AJAX call and all is well.  For a composite constraint, it does not work well currently.

-- 
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