Skip to content

Instantly share code, notes, and snippets.

@stliu
Created July 19, 2012 06:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save stliu/3141182 to your computer and use it in GitHub Desktop.
Save stliu/3141182 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
    • aggregated composite identifier
    • composite identifier
  3. Optimistic locking properties (optional)

  4. Property

  5. Embedded objects (aka components)

  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
  2. set
  3. bag
  4. idbag
  5. array
  6. primitive array

Association Mappings

  1. Unidirectional associations
    1. Many-to-one
    2. One-to-one
    3. One-to-many
  2. Unidirectional associations with join tables
    1. One-to-many
    2. Many-to-one
    3. One-to-one
    4. Many-to-many
  3. Bidirectional associations
    1. one-to-many / many-to-one
    2. One-to-one
  4. Bidirectional associations with join tables
    1. one-to-many / many-to-one
    2. one to one
    3. Many-to-many

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
  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

@sebersole
Copy link

Not sure where this best fits, but I noticed that org.hibernate.metamodel.spi.domain.Superclass is not used at all. Not sure if we really discussed the best way to model the notion of "mapped superclass" in the binding model yet; I know I do not have a clear answer for that right now.

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