Skip to content

Commit 062e244

Browse files
committed
Merge pull request #27 from akushsky/master
Change cast to unwrap and ParameterizedRowMapper to RowMapper.
2 parents 7cbefcc + d009913 commit 062e244

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

src/main/java/de/zalando/typemapper/core/TypeMapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
1717

18-
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
18+
import org.springframework.jdbc.core.RowMapper;
1919

2020
import de.zalando.typemapper.core.db.DbFunction;
2121
import de.zalando.typemapper.core.db.DbFunctionRegister;
@@ -32,7 +32,7 @@
3232
import de.zalando.typemapper.parser.exception.RowParserException;
3333
import de.zalando.typemapper.parser.postgres.ParseUtils;
3434

35-
public class TypeMapper<ITEM> implements ParameterizedRowMapper<ITEM> {
35+
public class TypeMapper<ITEM> implements RowMapper<ITEM> {
3636

3737
private static final Logger LOG = LoggerFactory.getLogger(TypeMapper.class);
3838

@@ -76,7 +76,7 @@ private ResultTree extractResultTree(final ResultSet set) throws SQLException {
7676
LOG.trace("Extracting result tree");
7777

7878
// cast to obtain more information from the result set.
79-
final Jdbc4ResultSet pgSet = (Jdbc4ResultSet) set;
79+
final Jdbc4ResultSet pgSet = set.unwrap(Jdbc4ResultSet.class);
8080
final ResultSetMetaData rsMetaData = pgSet.getMetaData();
8181

8282
final ResultTree tree = new ResultTree();

src/main/java/de/zalando/typemapper/core/fieldMapper/FieldMapperRegister.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.util.Date;
66
import java.util.Map;
7+
import java.util.UUID;
78
import java.util.concurrent.ConcurrentHashMap;
89

910
import de.zalando.typemapper.core.ValueTransformer;
@@ -62,6 +63,9 @@ public class FieldMapperRegister {
6263

6364
final FieldMapper hstoreMapper = new HStoreFieldMapper();
6465
FieldMapperRegister.register(Map.class, hstoreMapper);
66+
67+
final FieldMapper uuidMapper = new UUIDFieldMapper();
68+
FieldMapperRegister.register(UUID.class, uuidMapper);
6569
}
6670

6771
@SuppressWarnings("rawtypes")
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package de.zalando.typemapper.core.fieldMapper;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import java.util.UUID;
7+
8+
/**
9+
* Created by akushsky on 27.08.2015.
10+
*/
11+
public class UUIDFieldMapper implements FieldMapper {
12+
13+
private static final Logger LOG = LoggerFactory.getLogger(UUIDFieldMapper.class);
14+
15+
@Override
16+
public Object mapField(String string, Class<?> clazz) {
17+
if (string == null) {
18+
return null;
19+
}
20+
21+
try {
22+
return UUID.fromString(string);
23+
} catch (IllegalArgumentException e) {
24+
LOG.error("Could not convert {} to UUID.", string);
25+
return null;
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)