Created
June 27, 2012 20:19
-
-
Save gbadner/3006606 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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