@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Map<Path<?>, Object> createMap(RelationalPath<?> entity, Object bean) {
Map<Path<?>, Object> values = Maps.newLinkedHashMap();
Map<String, Object> map = new BeanMap(bean);
Map<String, Path<?>> columns = getColumns(entity);
for (Map.Entry<String, Path<?>> entry : columns.entrySet()) {
Path<?> path = entry.getValue();
if (map.containsKey(entry.getKey())) {
Object value = map.get(entry.getKey());
if (value != null) {
values.put(path, value);
} else if (withNullBindings && !isPrimaryKeyColumn(entity, path)) {
values.put(path, Null.DEFAULT);
}
}
}
return values;
}