- You can now run SchemaTool against HBase. This operates in either "create" or "delete" modes, and allows you to manage the schema required by your persistable classes.
- When a relationship was persisted with v2.0 it simply serialised the related object. This broke JDO/JPA cascade rules. In v3 the column for the relation in the owner stores the identity (or identities when persisting multi-value relations). This also provides correct cascading of persist and update.
- When a String field was persisted in v2.0 it was Java serialised, meaning that it was not readable with something like "hbase shell". In v3.0 String/char fields are persisted as the bytes of the field value, hence readable.
- With v2.0 we provided value generation using "uuid", "uuid-hex", etc simple generators, but not accessible by default. In v3.0 the default (JDO "native", JPA "auto") is "uuid-hex", and we also provide an "increment" generator (contrib from Peter Rainer).
- In v2.0 we only supported "application identity". In v3.0 we also support "datastore identity" (surrogate identity column).
- In v2.0 we didn't support storing a version against the object. In v3.0 we do allow this.
- You can now embed persistable fields into the table of the owning object, and also nested embedded fields.
- Now supports HBase 0.90
DataNucleus v3 and HBase
DataNucleus AccessPlatform v3 provides an opportunity to bring some of our other datastore plugins closer to the standard of the more mature long-supported datastores (e.g RDBMS). In the case of HBase, the plugin provided with v2.0 offered basic persistence and querying, at best. In v3 this is already much improved.