blob: 4d8d75e981b13ee763a4b322270c1edc0c485f47 [file]
This implementation tries to be as compatible as possible with GORM for Hibernate.
In general you can refer to the [GORM documentation|http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html]
for usage information.
The following key features are supported by the current version simpledb plugin:
* Simple persistence methods
* Dynamic finders
* Criteria queries
* Named queries
* Inheritance of domain classes (parent properties are stored in the child)
* Query by example
* Customizable AWS SimpleDB domain name per domain object
* Customizable AWS SimpleDB attribute name per attribute in domain object
* Customizable (optional) prefix for all AWS SimpleDB domain - useful when same AWS account is used for more than one environment (DEV and QA)
* hilo numeric id generator to use as alternative to default UUID
* Enum fields are supported
* Sorting and lexicographical comparison -friendly persistence of the following data types (including negative values for numeric types):
** byte
** short
** int
** long
** Date
The current version of simpledb plugin has the following limitations:
* Does not support Embedded types
* Does not support HQL queries
* Does not support Dirty checking methods
* Does not support Composite primary keys
* Does not support Many-to-many associations (these can be modelled with a mapping class)
* Does not support Any direct interaction with the Hibernate API
* Does not support Custom Hibernate user types
* Maximum size of String attribute or toString representation is 1024 bytes (will be solved in the next version)
* Sorting and lexicographical comparison -friendly persistence is not implemented for the following data types:
** float
** double
** BigDecimal
** BigInteger
There may be other limitations not mentioned here so in general it shouldn't be
expected that an application based on GORM for Hibernate will work without some tweaking involved.
Furthermore, migration from SQL to NoSQL storage with eventual consistency (such as SimpleDB)
will require a re-design of the application
at the fundamental level (see 'eventual consistency' in the next chapter).
Having said that, the large majority of common GORM functionality is supported, and this simpledb plugin is a good option
(in author's eyes) for a from-scratch rapid project development. In this scenario AWS SimpleDB allows developer to
focus purely on the grails application without setting up and managing a dev/production cluster of database server instances.