Hi Nikolaos,
No, you're not missing anything. JSR-303 (validation) is on the list for
the next major version of Stripes. That will really simplify things as
Hibernate already supports JSR-303. When I get some time I plan on
working on that but it may be a little while because I haven't really
had any extra time lately. :-(
Aaron
On 05/13/2010 11:43 PM, Nikolaos Giannopoulos wrote:
> Hi,
>
> I'm integrating Stripersist w/ JPA, Hibernate and MySQL and have been
> working with some code from Frederic's great book.
>
> Assuming the following shortened class excerpts:
>
> @Entity
> public class Contact extends BaseModel {
> private String firstName;
> ...
>
> public class ContactFormActionBean {
> @ValidateNestedProperties( {
> @Validate(field = "firstName", maxlength = 25),
> ...
> @Override
> public void setContact(Contact contact) {
> super.setContact(contact);
> }
>
> The above logically results in a Contact table "firstName" column that
> is varchar(255) which is obviously not ideal and moreover will not be
> required as the field is never> than 25.
>
> Now to make the Contact table "firstName" column varchar(25) vs. the
> default varchar(255) I add the following @Column annotation and all is well:
>
> @Entity
> public class Contact extends BaseModel {
> @Column(length=25)
> private String firstName;
> ...
>
> Except now I have 2 values that I need to keep in sync PER field that is
> constrained (and typically a high percentage of String fields do not
> need to be 255 chars).
>
> So what to do about this to simplify the duplication issue i.e. the
> constraints at the Model and Controller? Well the obvious traditional
> coding choice is something like:
>
> @Entity
> public class Contact extends BaseModel {
> public static final int FIRST_NAME_LENGTH = 25;
>
> @Column(length=Contact.FIRST_NAME_LENGTH)
> ...
> private String firstName;
> ...
>
> public class ContactFormActionBean {
> @ValidateNestedProperties( {
> @Validate(field = "firstName", maxlength =
> Contact.FIRST_NAME_LENGTH),
> ...
> @Override
> public void setContact(Contact contact) {
> super.setContact(contact);
> }
>
> Now this keeps the values in sync but PER each 2 properties I want to
> keep in sync I am introducing 1 additional variable (constant) to
> configure. In some ways better but still feels lacking....
>
> Is there an easier way to solve this issue such that it better leverages
> Stripes forte of convention over configuration?
>
> Perhaps I am missing something obvious?
>
> --Nikolaos
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Stripes-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>
>
------------------------------------------------------------------------------
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users