Using Spring Data JDBC I would like for the Inner variable 'inner' to be mapped to a varchar column in the outer table rather than being mapped to its own table. Is this possible?
public class Outer {
@Id
private String id;
private Inner inner;
}
...
public class Inner {
private String value;
}
...
public OuterRepository implements CrudRepository<Outer, String> {}
Here is my context configuration:
@Configuration
@EnableJdbcRepositories
public class Config extends JdbcConfiguration {
@Bean
protected JdbcCustomConversions jdbcCustomConversions() {
return new JdbcCustomConversions(asList(StringToInner.INSTANCE, InnerToString.INSTANCE));
}
@WritingConverter
enum InnerToString implements Converter<Inner, String> {
INSTANCE;
@Override
public String convert(Inner source) {
return source.getValue();
}
}
@ReadingConverter
enum StringToInner implements Converter<String, Inner> {
INSTANCE;
@Override
public Inner convert(String source) {
return new Inner(source);
}
}
}