Author: tchemit Date: 2011-11-11 18:17:43 +0100 (Fri, 11 Nov 2011) New Revision: 38 Url: http://forge.codelutin.com/repositories/revision/echobase/38 Log: fix saing of foreign keys Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-11 17:17:04 UTC (rev 37) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-11 17:17:43 UTC (rev 38) @@ -168,9 +168,21 @@ for (Map.Entry<String, String> entry : properties.entrySet()) { String propertyName = entry.getKey(); String propertyValue = entry.getValue(); + Object value; + ColumnMeta columnMeta = tableMeta.getColumns(propertyName); + if (columnMeta.isFK()) { + + // let's find the entity + TopiaDAO daoFK = EchoBaseDAOHelper.getDAO( + getTransaction(), + (Class<? extends TopiaEntity>) columnMeta.getType()); + value = daoFK.findByTopiaId(propertyValue); + } else { + value = propertyValue; + } BeanUtils.setProperty(entityToSave, propertyName, - propertyValue); + value); } PropertyDiff[] propertyDiffs = monitor.getPropertyDiffs();