Mybatis Nested Select dla Stowarzyszenia / Kolekcji nie działa
Próbuję przetestować instrukcję obsługi Mybatisa z częścią mapy wyników. Wersja 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>
Moje klasy 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>
Wreszcie mój moduł testowy
<code> BlogMapperInterface bm = context.getBean("blogMapper",BlogMapperInterface.class); Blog b = bm.getBlog(1); </code>
Śledzenie stosu debugowania
<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>
Dlaczego getAuthor nie jest wywoływany? Czy nie powinien być wywoływany za każdym razem, gdy wywołam getBlog ()?