I've started a patch for this. The right thing to do is add a create(vo) an update(vo) and a read(id) so that objects can be loaded and modified on an individual basis.
The following files are affected. I see now that this should actually be a Spring cartridge issue.
spring/crud/SpringCrudService.vsl is the service interface
spring/crud/SpringCrudDao.vsl is the spring dao interface
spring/crud/SpringCrudServiceBase.vsl is the service implementation
spring/crud/SpringCrudDaoBase.vsl is the spring dao implementation
Currently I'm using BeanUtils.copyProperties(entity, valueObject) but I think that a method called fromValueObject or toEntity in spring/crud/SpringCrudServiceBase.vsl would be appropriate and reduce the need for making calls to methods by reflection. Therefore saving resources.
This patch contains the following methods,
public EntityValueObject create(EntityValueObject)
public EntityValueObject read(EntityIdentifierObject)
public List read(EntityValueObject)
public EntityValueObject update(EntityValueObject)
These methods delegate to existing crud methods. A topic has been created on the forum which explains it in more detail,
http://galaxy.andromda.org/forum/viewtopic.php?t=2413
Philip