Skip to content

Instantly share code, notes, and snippets.

@gbadner
Forked from stliu/gist:3141182
Created July 25, 2012 18:12
Show Gist options
  • Save gbadner/3177636 to your computer and use it in GitHub Desktop.
Save gbadner/3177636 to your computer and use it in GitHub Desktop.
hibernate metamodel branch progress

This document is supposed to be used as a tracker of the progress of hibernate metamodel branch.

We want a uniform place to track the progress, so I use this instead of JIRA.

There are 5 major works shoulb be done to complete a mapping:

  • source
  • binding
  • binder
  • persister
  • testing

Basic O/R Mapping

  1. Entity

  2. Identifiers -- FINISHED, but may need to review, at least composite identifier's hibernate type is not binded

    • simple identifier ** multi-column ** non-persistent generators (e.g., increment, identity) FINISHED ** persistent generators (e.g., sequence) must be integrated into schema tools
    • aggregated composite identifier
    • composite identifier
    • derived identifier (HHH-6234)
  3. Optimistic locking properties (optional)

  4. Property

  5. Embedded objects (aka components) hbm -> persisters FINISHED except cascade and dynamic components annotations ?

  6. Inheritance strategy

  7. Mapping one to one and one to many associations

  8. Natural-id

    both hbm and annotations are finished, also integrated with SessionFactory

  9. NaturalId Cache

    both hbm and annotations are finished, also integrated with SessionFactory

  10. Any --- NOT YET IMPLEMENTED

  11. Properties --- NOT YET IMPLEMENTED

  12. Auxiliary database objects

    source, binding, binding are finished, but no tests nor integrated

  13. Generated properties

    all finished, also integrated with persister

  14. Column transformers

    all finished, also integrated with persister

Collection mapping

  1. list integrated with persister
  2. set FINISHEDintegrated with persister
  3. bag FINISHED, also integrated with persister
  4. map
  5. idbag ???
  6. array -- NOT YET IMPLEMENTED
  7. primitive array -- NOT YET IMPLEMENTED

Association Mappings

  1. Unidirectional associations
    1. Many-to-one hbm, FINISHED, also integrated with persister annotations???
    2. One-to-one -- NOT YET IMPLEMENTED
    3. One-to-many hbm FINISHED, also integrated with persister annotations???
  2. Unidirectional associations with join tables
    1. One-to-many -- NOT YET IMPLEMENTED
    2. Many-to-one -- NOT YET IMPLEMENTED
    3. One-to-one -- NOT YET IMPLEMENTED
    4. Many-to-many -- NOT YET IMPLEMENTED
  3. Bidirectional associations
    1. one-to-many / many-to-one FINISHED, also integrated with persister
    2. One-to-one -- NOT YET IMPLEMENTED
  4. Bidirectional associations with join tables
    1. one-to-many / many-to-one -- NOT YET IMPLEMENTED
    2. one to one -- NOT YET IMPLEMENTED
    3. Many-to-many -- NOT YET IMPLEMENTED

Component Mapping

  1. Dependent objects
  2. Collections of dependent objects
  3. Components as Map indices
  4. Components as composite identifiers
  5. Dynamic components -- NOT YET IMPLEMENTED

Inheritance mapping

  1. Table per class hierarchy

    • hbm FINISHED except many-to-one associations with subclass is broken
    • annotations???
  2. Table per subclass

  3. Table per subclass: using a discriminator

  4. Mixing table per class hierarchy with table per subclass

  5. Table per concrete class

  6. Table per concrete class using implicit polymorphism

  7. Mixing implicit polymorphism with other inheritance mappings

Integrate Bean Validation

org.hibernate.cfg.beanvalidation.TypeSafeActivator -- NOT YET IMPLEMENTED

@gbadner
Copy link
Author

gbadner commented Jul 26, 2012

Some items are listed under Basic O/R Mapping and also in a separate section. For example:

Basic O/R Mapping: 5. Embedded objects
Component Mapping

Basic O/R Mapping: 6. Inheritance strategy
Inheritance mapping

Basic O/R Mapping: 7. Mapping one to one and one to many associations
Association Mappings

Is there a reason for the duplication?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment