/** * Convenience method for {@code getConfig(MapEntryMappers.class).setKeyColumn(keyColumn)} * * @param keyColumn the key column name * @return this */ default This setMapKeyColumn(String keyColumn) { return configure(MapEntryMappers.class, c -> c.setKeyColumn(keyColumn)); }
@Override public void configureForMethod(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType, Method method) { KeyColumn keyColumn = (KeyColumn) annotation; String name = keyColumn.value(); registry.get(MapEntryMappers.class).setKeyColumn(name.isEmpty() ? null : name); } }
@Test public void testSingleInstanceAssignmentWithSelectedKeyValueShouldSucceed() { Handle handle = dbRule.getSharedHandle().configure(MapEntryMappers.class, c -> c.setKeyColumn("key_c").setValueColumn("val_c")); Optional<Tuple2<String, String>> valueMap = handle.createQuery("select val_c, key_c from keyval") .mapTo(new GenericType<Tuple2<String, String>>() {}) .findFirst(); assertThat(valueMap).isNotEmpty(); assertThat(valueMap.get()).isEqualTo(Tuple.of(KEY_PREFIX + 0, VAL_PREFIX + 1)); }