arnaudroger / SimpleFlatMapper

Fast and Easy mapping from database and csv to POJO. A java micro ORM, lightweight alternative to iBatis and Hibernate. Fast Csv Parser and Csv Mapper
http://simpleflatmapper.org
MIT License
437 stars 76 forks source link

Discriminate interfaces #628

Closed rullyalves closed 5 years ago

rullyalves commented 5 years ago

Is there any form of discrimination interface using Simple Flat Mapper?

For example :

public interface Person {

void someMethod ();

}

class Teacher implements Person {

@override void someMethod () { }

}

class Child implements Person {

@override void someMethod () {

}

}

arnaudroger commented 5 years ago

there is discriminator support see here https://simpleflatmapper.org/0205-inheritance-discriminator.html

arnaudroger commented 5 years ago

in that case

JdbcMapper<Person> mapper =
        JdbcMapperFactory.newInstance()
                .discriminator(Person.class, 
                            "person_type", 
                            ResultSet::getString, 
                            builder -> 
                                builder
                                    .when("teacher", Teacher.class)
                                    .when("child", Child.class)
                )
                .newMapper(Person.class);
arnaudroger commented 5 years ago

@rullyalves closing the ticket as I believe it does answer the questions, if you have any issue don't hesitate to reopen