Používanie bodkočiarok
Zvážte používanie bodkočiarok v dopytoch - môže to pôsobiť veľa problémov. Napr. ovládač typu NET pre DB2 spokojne skonzumuje dopyt ukončený bodkočiarkou. Žiaľ, JCC verzia ovládača sa zakusne a vyhlási syntaktickú chybu.
Vzťahy 1:1 s použitím ResultMapy a explicitné vzťahy
Majme
<resultMap class="libris.Book" id="bookRM" groupBy="id" >
<result property="id" column="id_book"/>
<result property="title" column="title"/>
<result property="status.requestsCount" column="request_count"/>
<result property="status.borrowedTo" column="borrowee"/>
<result property="series" resultMap="Book.seriesRM"/>
</resultMap>
a triedu
public class Book implements Serializable {
protected Integer id;
protected String title = new String();
private BookStatus status;
private SimpleSeries series = SimpleSeries.EMPTY_SERIES;
Všimnime si dve situácie:
- premenná
status
je vBook
u nastavená nanull
a v mapovaní je reprezentovaná pomocou explicitného stĺpcového mapovania. iBatis v tomto prípade vytvorí novú inštanciuBookStatus
u a nastaví jejrequestCount
aborrowedTo
zo stĺpcovrequest_count
aborrowee
. - premenná
series
nie je vBook
u nastavená nanull
. Ak by sme mapovali pomocou explicitného stĺpcového mapovania, iBatis podľa všetkého nevie nastaviť hodnoty z príslušných stĺpcov na už existujúcej inštancii triedySimpleSeries
. Obísť to možno pomocou použitia ďalšejresultMap
y, čiže pomocou
<result property="series" resultMap="Book.seriesRM"/>