[Qt Ambassador] QxOrm 1.1.7 released
QxOrm 1.1.7 released :
Changes in version 1.1.7:
- Add soft delete behavior : see the FAQ (How to define a soft delete behavior ?) for more details about this new feature
- Add functions into namespace 'qx::dao' to update an element with a SQL condition : update_by_query, update_optimized_by_query, etc.
- Fix a bug when QVariant type is used for a property of a persistent class : so, it's now possible to insert NULL value into database
For more information about QxOrm library, please visit : http://www.qxorm.com/.
I had a quick look at the project and I wondered why you decided against code generation (e.g. generation of skeleton classes). Back when I developed PHP, I used the Propel ORM (I don't know if you know that), quite heavily, and I always liked its code generation features. Is is something you plan to add in the feature (judging from your website I'd say you won't) are you conceptually against it (if so, I'm really interested why) or did you just not need it? I'm not doing a lot of database stuff at the moment in desktop development, but I am just curious as to why you made that choice.
I'm not against code generation and I think it would be a good feature to implement in a future release.
But generation from what ? An XML file ?
I don't think it's a good solution : I prefer write directly C++ source code and I think QxOrm library provides an easy interface to implement (you just have to write qx::register_class<T> per persistent class).
A good cross-platorm editor could be a solution with a GUI to define your persistents classes and a command line to generate all classes before building your project.
Moreover, I think code generation must be considered when ORM library starts to be mature : it's a new feature and you have the choice to use it or not. QxOrm library starts to be mature so we can now envisage to write a code generation editor.
It's like inherit from QObject : why QxOrm library doesn't use introspection engine of Qt ? To not add constraint to developers.
With QxOrm library, you just have the choice : you can inherit your persistent class from QObject or not.