WaveMaker imports a database schema and automatically generates corresponding Hibernate classes. Chris Keene describes how to use WaveMaker to automatically generate Hibernate classes, including an example of how it works in practice.
I can not click into the link
Here is the running Hibernate tutorial application referred to in the article:
It demonstrates, among other things, Hibernate join queries as well as clauses like ORDER BY and GROUP BY
I can already auto generate my hibernate domain entities using Hibernate Tools either from Eclipse or Ant.
Plus, Hibernate tools comes with an HQL query editor as well.
Hibernate tools gives you the choise of generating either HBM files or entities with annotations.
Does WaveMaker generate annotations instead of HBM files ?
Can WaveMaker generate entities using Ant ?
There are many frameworks out there that generate Ajax crud applications like :
It looks to me like something iBATIS already does for a long time ?
@Aries you raise a number of good points. There are several tools out there that do similar things.
Here are some general considerations to apply to all of them:
1. Should you use code generation at all? This topic always seems to get the juices flowing on TSS. My short answer would be that you should use code generation iff the time(code generation + inevitable tweaking) Do you want to specify the OR mapping using a separate XML mapping file or annotations within the Java classes themselves? Again, this is a topic designed to raise passions of right thinking Java engineers the world over. If you want to use annotations, then doing it by hand or using Hibernate tools seems the best route.
3. Are you using Eclipse? If so, then an Eclipse plug-in is the way to go (the Hibernate and Spring Tools fit well here).
4. What is your UI architecture? Schlepping the data from the back to the middle doth not an application make. Depending on how "data aware" you want your UI to be, choosing a tool that not only generates the Hibernate mapping but also manages the marshalling/unmarshalling + data transport from server Java classes to client UI widgets can be a big help (Skyway and WaveMaker fit here).
The article is misleading in that it says WaveMaker is open source and that it supports Oraacle, DB2 and MS SQL Server,
but according to the WaveMaker site those databases are only supported in the commerical "enterprise edition", not the open source "community edition".
You are right - WaveMaker ships with support for MySql and Postgres. To access any other database, you just enter the connection url. For example, for Oracle, that would be:
I don't think it is possible to generate a high quality domain model from the database. Sculptor is a tool that increase your productivity by generating things from a textual description (DSL) of the domain model.
Read more: http://fornax-platform.org/cp/x/aAQ
I find Wavemaker a great tool and this being open source has unlimited potential. I encourage you all to submit your inquiries to its community which i have found very resourceful and I'm sure with more the feedback it gets, it'll get better and better in the shortest amount of time. I found the best part to be is the simplicity of its extensibility. We all know how tedious is to invest time in IDEs or tools that promises the magical generations but as a price it locks you in. Wavemaker is not that way. It provides complete freedom to extend on what it might lack on at the time with robust community support. Why code one thing twice? I have found it very time saving and I hope you all check it out and get involved in the community as well.
Just what i needed, since the Hibernate Tools package is severely broken.
Well 2 or 3 things i want to say !
I wanted a tool to generate data access code, entities, value object and a like. I google the net for some weeks, thinked of what i already known etc.
Then i found several solutions, mainly :
- MDA, most of the time from an UML model
- tools that can generate database from mapping file or class, or the opposites.
But my problem here is that standard generation does not met our need of working with our existing products and databases. Our typing is different, our old database is not relationnal (AS400). We make some validation and verifications while reading/writing data. We do not directly work with the persistant data but use temporary tables instead.
All of the needed customisation make most standard generation tool useless. MDA or by hand generation are both possible. I didn't want to use UML model, because it take too much time to make them. UML editor suitable for MDA make it slow to create new diagrams as needed.
So i choosed to make my own DSL XML descriptor for generation. It generate all i need, with the specificity i need from a simple XML.
XML format is good because in no time with an XSD you have code completion in eclipse or your favorite XML editor, because your XMl classes are generated by JAXB... And because with copy paste and using a simple text editor you can describe a new table in no time. It's modular, (1 file <=> 1 table), support team work (easy merging), and simple.
For the generation, i just use a templating engine (Free Marker)... and voila in not time i have a generator that generate exactly what i need, no more, no less. With all specific cases i wanted. My XML format allow ONLY valid types and descriptor format.
I made a simple main class to call the generation, so i can call it from ant, batch file or everything i want.
So what ? in 10 day i made a small generation tool based on a template engine. If i used another tool i would take at least as much time to customise it if it possible at all. From my undestanding, many time it is not possible. Also my enterprise does not have to buy some slow and buggy UML tool at 5000$ per developper to use it.
Your tool is interresting but what is has that power builder or thing alike don't have ? Is it really customisable ? Easily ? Can it adapt to all cases ? Or is it just a scolar example ?
For the GUI part : Most user needs for a GUI just can't fit with a generated CRUD system. This is not an application you make then, just some sort of simplified SQL tool. User want more than that. And it's likely that you'll have to deal with an existant GUI design, API and alike.
You idea is good, but i'd say it's very difficult to make something really universal, really usefull in real world.
In all case, good luck.
General-purpose code generation is never going to handle corner conditions very well. Your approach - creating a custom code generation tool - seems like a good response to the challenge of mapping to non-relational data with customized validation requirements.
Our design goal for WaveMaker was to recreate PowerBuilder, but for Java web developers. WaveMaker works best with more standard relational data models. The UI widget generation is also pretty flexible, as it creates individual widget components that you can then compose and edit in a visual builder, rather than just a monolithic UI that is only good for demos.