Initially I decided to allow Dialects return null from #getDefaultMultiTableBulkIdStrategy. In such cases, the behavior is the same as what used to happen. I did this because knowing how each Dialect needs to handled a fully-contained MultiTableBulkIdStrategy more of an audit than I wanted to put into this as on a late Friday afternoon
Long term, I think the best approach is to remove the Dialect method intended to support table tabled in a piecemeal fashion and to make MultiTableBulkIdStrategy be a fully self-contained contract. That requires some planning though since the calls into the Dialect methods happen from many "levels" (while building PersistentClasses, while building EntityPersisters and finally from Sessions). Anyway the Dialect methods in question are:
-
supportsTemporaryTables
-
generateTemporaryTableName
-
getCreateTemporaryTableString
-
getDropTemporaryTableString
-
performTemporaryTableDDLInIsolation
-
dropTemporaryTableAfterUse
|