public void toStorageType(Object value, Map<String, Object> valuesRef) { Object[] values = null; if (isRelation(getType())) { if (value != null) { @SuppressWarnings("unchecked") AnnotatedRecordMapper<Object> mapper = (AnnotatedRecordMapper<Object>) create(getType()); values = mapper.getIds(value); } } else if (isEmbedded()) { if (value != null) { values = getEmbeddedFields(value); } } else { values = new Object[] {dataTypeConverter.toStorageType(value)}; } if (values != null) { for (int i = 0; i < names.length; i++) { valuesRef.put(names[i], values[i]); } } else { for (String columnName : names) { valuesRef.put(columnName, null); } } }