best practices for creating a database CRUD application from existing DB

hello vaadiners,

I would like to create a vaadind CRUD application from an existing database (basicallly I have to recreate some parts of an existing desktop application for web/internet access)

  • I have an existing postgresql 9.0 db with 50+ tables in it (including the users table)
  • I would like to gradually reverse engineer this (because not all the desktop functionality is needed on the web)
  • Modifying the existing database structure ( eg giving a version column for all the table ) is not possible
  • user authentication/authorization/login is a must
  • it has to be a multilingual application (english / hungarian)
  • I have some complex business logic ( complex sql queries with joins a lot of where conditions) which I would like to preserve
  • would like to auto-generate the needed java classes from the database
  • I would like to use eclipse jee ide 3.6. or 3.7 with the vaadin plugin (and other plugins needed for class auto generation for example jboss tools plugin) OR STS with the vaadin plugin , and spring roo ( although I am unfamiliar with spring and related things it looks very very promissing)

The following solutions come to my mind:

-vaadin + appfoundation addon

  • vaadin +vaadin sqlcontainer addon

  • vaadin with an ORM solution (hbnContainer, vaadin jpacontainer, EclipseLink Container )

  • STS with the vaadin plugin with spring roo ( and the vaadin spring roo plugin/addon)

  • which is the best method to accomplish my task/goals

  • Which are the recent best practices for creating such application ?

  • If I would like to use the sql container for example do I have to use version columns to make it posible to update tables/records?

  • If I use an ORM/JPA solution then is it possible not to use a version column?

  • which solution has support for JPA2 ?

  • in either case how can I preserve my complex queries/coonditions? (do container filters become sql where conditions for example)

I am quiet good at database design/sql , but I am new to java and ORM/JPA stuff

Thanks for your help and attention

Peter

Ps: I am not lazy just simple disabled so I preffer my code to be generated instead of hand writing (with the posibility to hand modify the generated code)