iBatisサブモジュールの配置について、およびその他の点については、JPETStoreに基づいて検討する。
簡単のために、JPET Stree 5.0を例に挙げましょう。
設定ファイルsql-map-config.xmlに彼はこう書いています。
ここのAcceount.xmlはモジュール別のプロファイルですか?そうだろうと思います。
Acceount.xmlの中にあるものを聞いてください。
上のselect文をとって、iBatisはどのように知っていますか?SIGNN.USERNAMEというものはどのフィールドに対応していますか?
設定ファイルsql-map-config.xmlに彼はこう書いています。
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Account.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Category.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Product.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Sequence.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/LineItem.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Order.xml"/>
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Item.xml"/>
他はトレーサビリティManagerの配置は無視されます。ここのAcceount.xmlはモジュール別のプロファイルですか?そうだろうと思います。
Acceount.xmlの中にあるものを聞いてください。
<select id="getAccountByUsername" resultClass="account" parameterClass="string">
SELECT
SIGNON.USERNAME,
ACCOUNT.EMAIL,
ACCOUNT.FIRSTNAME,
ACCOUNT.LASTNAME,
ACCOUNT.STATUS,
ACCOUNT.ADDR1 AS address1,
ACCOUNT.ADDR2 AS address2,
ACCOUNT.CITY,
ACCOUNT.STATE,
ACCOUNT.ZIP,
ACCOUNT.COUNTRY,
ACCOUNT.PHONE,
PROFILE.LANGPREF AS languagePreference,
PROFILE.FAVCATEGORY AS favouriteCategoryId,
PROFILE.MYLISTOPT AS listOption,
PROFILE.BANNEROPT AS bannerOption,
BANNERDATA.BANNERNAME
FROM ACCOUNT, PROFILE, SIGNON, BANNERDATA
WHERE ACCOUNT.USERID = #username#
AND SIGNON.USERNAME = ACCOUNT.USERID
AND PROFILE.USERID = ACCOUNT.USERID
AND PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY
</select>
iBatisはhibernateのように、表示されている対応columnとfieldの対応関係がないことを知っています。上のselect文をとって、iBatisはどのように知っていますか?SIGNN.USERNAMEというものはどのフィールドに対応していますか?