- <0.1.9> when there is no @Entity class in the whole class path, the default persistence.xml will include a null - [high] provide an update fields interface for entity that take a Map of changes, and the map value accept a Closure of {currentValue, entity -> } - [high] use Hibernate plugin instead of including Hibernate libraries plugins.hibernate=1.1-beta3 see http://jira.codehaus.org/browse/GRAILS-4005 - [high] register persist, refresh, flush, delete and any relevant JPACategory methods to any detected Entity Beans in Grails - [high] utilize Grails' transaction or transaction configuration for the JPAContextHolder - enhance Groovy JPA interface allow jpa{ } static import usage add more constructor for JPA? e.g. new JPA(em) - support constructing with EntityManagerFactory emf support is taken out from project in the initial release to simply the implementation until it is more stable and mature - [low] support Multi-thread operations e.g. when saving data, a PooledJPA instance could be created to read data in multi-threads sequence could managed by a 'group' parameter. e.g. entity.persist(group:1) entity.execute(group:1){ entity.'name' = 'updated name' } entity.delete(group:1) transaction issues need to be managed - [low] provide a query snonym for executeQuery, or an enhanced Groovy way to do query Groovy JPA - perform automatical class convertion for the id field of getEntity() require: prepare a registry of entity bean class with primary key information (either load upon startup or lazy-load) benefits: users need not to cast the id field explicitly when using getEntity(id:xxx) - add EntityClass.getEntity(id:xxx) method. benefits: when using em.getEntity(), users need to supply a em.getEntity(id:xxx, class: EntityClass.class), why not just EntityClass.getEntity(id:xxx) similar to GORM finder method.