I'm newbie with GWT/GXT and I'm looking for best persistence way for my future apps. I was considering many variants of doing that so I decided to draw a graph here:
So my conclusions are:
1) JPA/Hibernate is the best persistence framework but it hates cooperation with GWT and a specially with GXT
2) JDBC it was just an example joke :)
3) MyBatis is really great tool for gaining data from db, its fast, efficient and has great possibilities not seen in Hibernate, but writing mappers is the worst thing ever.
4) Dozzer is server and user resourcess killer. You must write a lot of boiler plate code and it just copy data (sometimes a lot). Don't use it at any cost!!! Imagine server that runs 100 sessions and each bean request must use Dozzer.
5) DTO - similar situation. It's boilerplate, and it's just transforming one data type into other. There is no serious data processing. Use server resourcess wisely.
6) Gilead is copying hibernate beans states. It could be dangerous (just heard from few comments), hard to configure and integrate with other IoC frameworks (Guice in my case).
7) Don't transform POJO into BeanModel on the client side. JavaScript is really slow and it slows down the whole client.
8) Best practise for me and maybe for you: find the shortest path on the graph from DB to the BaseModel bean on the client side.
9) MyBatis allows to map query results to the BaseModel beans (tested) so they don't need to be transformed many times and you don't have to care about it at all. The only thing is writing proper mappings.
This is my personal opinion but I would like to know your opinion. Please explain me if I'm wrong and give cons arguments. I would really like to use Hibernate or maybe you know another ORM or similar to MyBatis framework that could give me direct mapping to the BeanModel.
For my purpose I'm going to develop app that would generate for me domain classes in BaseModel style with mappers, validators, editors, advanced search panels, DAOs, services and GWT-RPC classes. The best solution would be to develop own scaffolding :D. What do you think about it?