Skip to content

Instantly share code, notes, and snippets.

@gbadner
Created June 27, 2012 20:19
Show Gist options
  • Select an option

  • Save gbadner/3006606 to your computer and use it in GitHub Desktop.

Select an option

Save gbadner/3006606 to your computer and use it in GitHub Desktop.
Bind global configuration (which are done already???)
(schema, catalog, imports, filters, fetch profiles, identifier generators, typedefs, named/native queries, resultset, auxiliary database object, etc)
Schema tools need to support persistent ID generators
(sequences and other IDs requiring DB objects will not work until this is fixed)
Use case examples:
A) Inheritance (not all are jpa)
1) table per class hierarchy (done?)
2) table per subclass
a) with discriminator
b) without discriminator
3) table per concrete class
4) mixed inheritance
a) table per class hierarchy / table per subclass (well-supported)
b) table for concrete class with the other types (limitations)
B) Components
1)
C) Collections
1) basic elements (done)
2) component elements
D) Associations
1) unidirectional
a) one-to-one
i) on foreign key
ii) on join table
b) many-to-one
i) on foreign key (done)
ii) on join table
iii) unique
c) one-to-many
i) on foreign key (done)
ii) on join table
d) many-to-many
i) on foreign key
ii) on join table
2) bidirectional
a) one-to-one
i) on foreign key
ii) on join table
b) one-to-many / many-to-one
i) on foreign key (experimentally done)
ii) on join table
c) many-to-many
i) on foreign key
ii) on join table
E) Non-POJO Entity mode
The following applies when adding support for a new kind of "mapping"
1 Create "source" model from mapping
1.1 jpa-related mappings
1.1.1 hbm
1.1.2 annotations
1.2 hibernate-specific mappings
1.2.1 hbm
1.2.2 annotations
2 Create/test new binding model (if necessary)
(domain and relational models are pretty much in place now)
3 Update Binder to bind each model and test that the models are bound correctly
2.1 domain model
2.2 relational model
2.2.1 using specified table/column names
2.3.2 using NamingStrategy
2.3 binding model
4 Integrate into persister and test (can be an existing test)
(ensure that the same DDL and SQL statements are created w/ old and new metamodel)
(TODO: should column order always be the same???)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment