davidmoten / davidmoten/rxjava2-jdbc

Java 9 TODO Automapped interface

Open
#22 5 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
Java
Stars
394
Forks
41
Avg merge
2m
Merged PRs (30d)
1

Description

This is not an issue, but had no idea where to drop suggestions

Automapped interface with default methods currentluy does not work in Java 9

In order to work in Java 9, folowing changes should be made :

in org.davidmoten.rx.jdbc.Util#ProxyService

class add additional method

@SuppressWarnings("unchecked")
public T newInstance(ResultSet rs, Class cls) {
return (T) Proxy.newProxyInstance(cls.getClassLoader(), new Class[] { cls }, new ProxyInstance(cls, values()));
}

in org.davidmoten.rx.jdbc.Util class

alter original method that works with java8

static T autoMap(ResultSet rs, Class cls, ProxyService proxyService) {
return proxyService.newInstance();
}

to a modified version that works with java 9

static T autoMap(ResultSet rs, Class cls, ProxyService proxyService) {
return proxyService.newInstance(rs, cls);
}

Testing example that worked in Java 9

Database
.test()
.select(Person.class)
.get()
.map(Person::name)
.blockingForEach(System.out::println);

Not related to this example - another suggestion - make annotation work with sql field aliases
I would be happy to share more ideas for this great great api.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.