Do you remember me? I helped implement join() functionality in SimpleORM about 7 or 8 years ago!
Wow, I like the changes I’ve seen since then. And yet, it still simple and elegant!
After working at Epic Data, I ran my own business for about 6 years, where I used SimpleORM which I ported to C#. It worked great.
Now, I just started a new job and plan to use SimpleORM once again. I’ve taken a snapshot of the source, and I plan to implement the following features:
Ability to store classes which are part of an inheritance hierarchy. I plan to implement this, roughly, as follows:
The DB table would contain the union of all fields of all classes in a hierarchy
It would also contain a special ‘Discriminator’ field (of datatype ‘int’) which indicates which class should be instantiated
Add overloaded constructor to SRecordMeta which, rather than just taking a Class object, takes a Map of discriminator values to Classes)
Postpone the call to SRecordMeta.newRecordInstance() until the actual DB access has been made, so that the discriminator is read and the proper class can be created
Since right now you use an otherwise empty SRecordInstance to hold and pass the key (or even a NullKey value), this would have to be changed to just create and pass the key value fields, rather than the object.
Ability to have a detached DataSet where an SSessionJDBC looks into to resolve records before going to the DB. This is the idea of a “Read Mostly” cache that you hinted at in earlier code, though I think never implemented. This is useful
because in a typical DB application there is a large set of tables with very static data, and tons of DB accesses can be saved by caching this data between transactions. Please let me know if the current version of SimpleORM can do this already.
Are you interested in putting any of these features into the official SimpleORM?
Did you ever make any money of SimpleORM? I’m curious for two reasons:
It’s such a great tool, and you deserve it
I’m considering launching my own Open Source project (related to test automation) and am curious about others’ experience in this area.
Bye for now.
I hope to hear from you soon, and all the best!
PS. After I make the above changes in Java, I plan to port the new version to C# again.
Senior Software Architect
Aurora Control Technologies Inc.