Chcę, aby mybatis wywoływał metodę fabryczną do stworzeniaobiekt zamiast konstruktora. Tak więc dla atrybutów o wartości null mogę zwrócić obiekt NULL (który zastąpił zachowanie do obsługi wszystkich przypadków krawędzi) zamiast rzeczywistego obiektu. Czy mogę to osiągnąć dzięki mapper.xml?
Odpowiedzi:
1 dla odpowiedzi № 1Określ własną ObjectFactory
http://www.mybatis.org/core/configuration.html#objectFactory
0 dla odpowiedzi nr 2
Aby odpowiedzieć na twoje konkretne pytanie, nie ma mowyaby określić metodę fabryczną bezpośrednio (i tylko) w pliku mapper.xml, o ile wiem. W MyBatis są jednak dwie opcje:
- Jak stwierdzono w odpowiedzi Bhaskara, możesz użyć ObjectFactory.
- Teoretycznie można również zdefiniować TypeHandler, ale nie udało mi się uruchomić tego w moich ostatnich testach.
Jeśli chciałbyś zobaczyć działający przykład użycia MyBatis ObjectFactory do implementacji obiektu Null, zobacz koan19 z moich koans MyBatis: https://github.com/midpeter444/mybatis-koans. (Zajrzyj do skompletowanego katalogu koans / koan19, aby znaleźć rozwiązanie, które wymyśliłem.)