On 01/02/2011 06:27, Kevin Meyer wrote:
Hi Everyone,
Now my question is: If you have an opinion, what would you like to see
in such a document?
At the moment I'm just putting down whatever comes into my head, with
a view of later editting it into a coherent document, but obviously
there are questions of level of detail, etc. For example, should I
really bother with describing what persistance is, and how the domain
classes are introspected?!
I don't think so, no.
That said, if you do find yourself writing "introductory" material like
this, we can always move it. The place for such stuff should probably
be the "core" documentation (core/src/docbkx/guide/isis-core.xml), which
is what I'm chipping away at myself.
Yes to: what SQL data types are used by default, yes to: how to override
the automappers and provide your own mapper, yes to: how collections
and parent/child relatonships are handled, etc.
It'd be worth showing examples of all the different types of mappings
supported, as well as those that are not supported.
For example:
- Id generation - how is that supported?
- optimistic locking - how supported?
- one<->many
- one<-many
- one->many
- two one<->many relationships between same types A and B (if I recall,
this isn't supported?)
- many<->many
- many->many
- subtype relationships (roll-up, roll-down, table per subtype)
- polymorphic relationships to interfaces
You could also peruse some of the Hibernate ORM docs for examples of
mappings there; that might prompt you to consider some additional scenarios.
What else?
Obviously, any additional entries required in isis.properties to enable
the SQL object store.
In addition, as background it'd be worth explaining about the different
subcomponents used by the object store: the OidGenerator,
PersistAlgorithm, TransactionManager
Also, I know that the JPA object store has to configure a different
ClassSubstitutor/ObjectFactory, because it leaves the ORM to perform
cglib proxying. I don't think you have any similar restrictions, but it
might be worth saying so.
Regards,
Kevin