How to specify the cardinality of a @OneToMany in EclipseLink/JPA
I'm trying to impose a @Oneto7 association. I'd have imagined an attribute that specifies the target many value, but have found none. If there is no such attri开发者_如何学运维bute, how else, in JPA/EclipseLink would one achieve it?
You could use the Bean Validation API (JSR-303) - Hibernate Validator being the RI - and add a Size
constraint on your collection:
@Size(min = 7, max = 7) protected Set<Foo> foos = new HashSet<Foo>();
If you're using JPA 1.0, have a look at this previous answer to see how to use Bean Validation with JPA 1.0.
You may use the Oval library and set e.g.:
@OneToMany(cascade = CascadeType.ALL, mappedBy = "whatevery")
@Size(max = 30)
private List<SuperDocument> documents;
Here is the documentation for further validations of Oval: http://oval.sourceforge.net/userguide.html#api-documentation
精彩评论