JSF 2.0 and Wicket 1.4 are first-class candidates: they simply work with JPA 2.0 and provide support for the Bean Validation API (JSR 303), which, in my opinion, is a very important part of the question. Take a look at this blog post for more on this.
In fairness, it should be noted that Tapestry 5.2 (not sure if it was released) will also provide integration with the JSR 303 as detailed here but I'm not in love with the Tapestry.
As for Vaadin, it seems that everything is more complicated than with a βregularβ web card and support for JPA 2.0 JPAContainer has not yet been added ( Ticket # 4298 ).
I would go for JSF 2.0 or Wicket.
source share