| 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. |
| |