Mybatis Nested Select para Asociación / Colección no funciona
Estoy intentando probar el manual de usuario de Mybatis con la sección de mapa de resultados. Versión de Mybatis: mybatis-3.1.0
<code><setting name="lazyLoadingEnabled" value="false" /> <resultMap id="blogMap" type="blog"> <constructor> <idArg column="id" javaType="_long" /> <arg column="title" javaType="String" /> </constructor> <association property="author" javaType="author" column = "author_id" select = "getAuthor"/> </resultMap> <select id="getBlog" parameterType="Long" resultMap="blogMap"> select b.id, b.title from blog b where b.id = #{id} </select> <select id="getAuthor" parameterType="Long" resultType="author"> select a.id , a.username, a.password from author a where a.id = #{id} </select> </code>
Mis clases de Java:
<code>public class Blog { private long id; private String title; private Author author; private List<Post> posts; //getter, setters and the constructor public class Author { private long id; private String username; private String password; private String email; private String bio; private String favouriteSection; </code>
Finalmente, mi módulo de prueba.
<code> BlogMapperInterface bm = context.getBean("blogMapper",BlogMapperInterface.class); Blog b = bm.getBlog(1); </code>
Rastreo de pila de depuración
<code>[10/05/12 06:45:19:019 SGT] DEBUG datasource.DataSourceUtils: Fetching JDBC Connection from DataSource [10/05/12 06:45:19:019 SGT] DEBUG BlogMapperInterface.getBlog: ooo Using Connection [jdbc:oracle:thin:@*, UserName=*, Oracle JDBC driver] [10/05/12 06:45:19:019 SGT] DEBUG BlogMapperInterface.getBlog: ==> Preparing: select b.id, b.title from blog b where b.id = ? [10/05/12 06:45:19:019 SGT] DEBUG BlogMapperInterface.getBlog: ==> Parameters: 1(Long) [10/05/12 06:45:19:019 SGT] DEBUG BlogMapperInterface.getBlog: <== Columns: ID, TITLE [10/05/12 06:45:19:019 SGT] DEBUG BlogMapperInterface.getBlog: <== Row: 1, first blog [10/05/12 06:45:19:019 SGT] DEBUG datasource.DataSourceUtils: Returning JDBC Connection to DataSource </code>
¿Por qué no se invoca el getAuthor? ¿No debería ser invocado cada vez que llamo a getBlog ()?