Skip to content

Commit e9b07e2

Browse files
author
mmccurrey
committed
New Feature SqlMap Modules
We needed the ability to have sub-configurations loaded in other resources (in our case dlls). This allows you to contain sqlmaps and have them loaded from those other resources where they can be managed without altering the primary SqlMapConfig
1 parent 1ccb8d1 commit e9b07e2

File tree

14 files changed

+1999
-1827
lines changed

14 files changed

+1999
-1827
lines changed

src/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.Net45.2012.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@
249249
<SubType>Code</SubType>
250250
</Compile>
251251
<Compile Include="NUnit\SqlMapTests\ConstructorTest.cs" />
252+
<Compile Include="NUnit\SqlMapTests\ModuleTest.cs" />
252253
<Compile Include="NUnit\SqlMapTests\DynamicPrependTest.cs">
253254
<SubType>Code</SubType>
254255
</Compile>
@@ -361,6 +362,10 @@
361362
<Content Include="Maps\MSSQL\SqlClient\Category.xml" />
362363
<Content Include="Maps\MSSQL\SqlClient\Complex.xml" />
363364
<Content Include="Maps\MSSQL\SqlClient\ConstructorInjection.xml" />
365+
<EmbeddedResource Include="Maps\MSSQL\SqlClient\MapModule.xml">
366+
<SubType>Designer</SubType>
367+
</EmbeddedResource>
368+
<Content Include="Maps\MSSQL\SqlClient\Module\Order2.xml" />
364369
<Content Include="Maps\MSSQL\SqlClient\Coupons.xml" />
365370
<Content Include="Maps\MSSQL\SqlClient\Document.xml" />
366371
<Content Include="Maps\MSSQL\SqlClient\DynamicAccount.xml" />

src/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml

Lines changed: 169 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -4,72 +4,72 @@
44
xmlns="http://ibatis.apache.org/mapping"
55
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
66

7-
<alias>
8-
<typeAlias alias="LineItem" type="IBatisNet.DataMapper.Test.Domain.LineItem, IBatisNet.DataMapper.Test" />
9-
<typeAlias alias="LineItemCollection" type="IBatisNet.DataMapper.Test.Domain.LineItemCollection, IBatisNet.DataMapper.Test" />
7+
<alias>
8+
<typeAlias alias="LineItem" type="IBatisNet.DataMapper.Test.Domain.LineItem, IBatisNet.DataMapper.Test" />
9+
<typeAlias alias="LineItemCollection" type="IBatisNet.DataMapper.Test.Domain.LineItemCollection, IBatisNet.DataMapper.Test" />
1010
<typeAlias alias="LineItemCollection2" type="${collection2Namespace}" />
11-
</alias>
12-
13-
<resultMaps>
14-
<resultMap id="LineItem-Price" class="decimal">
15-
<result property="value" column="LineItem_Price"/>
16-
</resultMap>
17-
18-
<resultMap id="LineItem" class="LineItem">
19-
<result property="Id" column="LineItem_ID"/>
20-
<result property="Code" column="LineItem_Code"/>
21-
<result property="Quantity" column="LineItem_Quantity"/>
22-
<result property="Price" column="LineItem_Price" />
11+
</alias>
12+
13+
<resultMaps>
14+
<resultMap id="LineItem-Price" class="decimal">
15+
<result property="value" column="LineItem_Price"/>
16+
</resultMap>
17+
18+
<resultMap id="LineItem" class="LineItem">
19+
<result property="Id" column="LineItem_ID"/>
20+
<result property="Code" column="LineItem_Code"/>
21+
<result property="Quantity" column="LineItem_Quantity"/>
22+
<result property="Price" column="LineItem_Price" />
2323
</resultMap>
2424

2525
<resultMap id="LineItemWithNullReplacement" class="LineItem">
2626
<result property="Id" column="LineItem_ID"/>
2727
<result property="Code" column="LineItem_Code"/>
2828
<result property="Quantity" column="LineItem_Quantity"/>
2929
<result property="Price" column="LineItem_Price" nullValue="-77.77" />
30-
</resultMap>
31-
32-
</resultMaps>
33-
34-
<statements>
30+
</resultMap>
31+
32+
</resultMaps>
33+
34+
<statements>
3535

3636
<procedure id="SelectLineItemForOrder" parameterMap="select-params" resultClass="LineItem">
3737
ps_SelectLineItem
3838
</procedure>
3939

40-
<statement id="GetLineItemPrice"
41-
parameterClass="Hashtable"
42-
resultMap="LineItem-Price" >
43-
select
44-
LineItem_Price
45-
from LineItems
46-
where Order_ID = #Order_ID#
47-
and LineItem_ID = #LineItem_ID#
48-
</statement>
49-
50-
<statement id="GetLineItemsForOrder"
51-
parameterClass="int"
52-
resultClass="LineItem">
53-
select
54-
LineItem_ID as Id,
55-
LineItem_Code as Code,
56-
LineItem_Quantity as Quantity,
57-
LineItem_Price as Price
58-
from LineItems where Order_ID = #value#
59-
</statement>
60-
61-
<statement id="GetLineItemsForOrderWithListClass"
62-
parameterClass="int"
63-
listClass="LineItemCollection"
64-
resultClass="LineItem">
65-
select
66-
LineItem_ID as Id,
67-
LineItem_Code as Code,
68-
LineItem_Quantity as Quantity,
69-
LineItem_Price as Price
70-
from LineItems where Order_ID = #value#
71-
order by LineItem_Code
72-
</statement>
40+
<statement id="GetLineItemPrice"
41+
parameterClass="Hashtable"
42+
resultMap="LineItem-Price" >
43+
select
44+
LineItem_Price
45+
from LineItems
46+
where Order_ID = #Order_ID#
47+
and LineItem_ID = #LineItem_ID#
48+
</statement>
49+
50+
<statement id="GetLineItemsForOrder"
51+
parameterClass="int"
52+
resultClass="LineItem">
53+
select
54+
LineItem_ID as Id,
55+
LineItem_Code as Code,
56+
LineItem_Quantity as Quantity,
57+
LineItem_Price as Price
58+
from LineItems where Order_ID = #value#
59+
</statement>
60+
61+
<statement id="GetLineItemsForOrderWithListClass"
62+
parameterClass="int"
63+
listClass="LineItemCollection"
64+
resultClass="LineItem">
65+
select
66+
LineItem_ID as Id,
67+
LineItem_Code as Code,
68+
LineItem_Quantity as Quantity,
69+
LineItem_Price as Price
70+
from LineItems where Order_ID = #value#
71+
order by LineItem_Code
72+
</statement>
7373

7474
<statement id="GetLineItemsForOrderWithListClass2"
7575
parameterClass="int"
@@ -84,9 +84,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
8484
order by LineItem_Code
8585
</statement>
8686

87-
<statement id="GetSpecificLineItem-JIRA-251"
88-
parameterClass="Hashtable"
89-
resultClass="LineItem">
87+
<statement id="GetSpecificLineItem-JIRA-251"
88+
parameterClass="Hashtable"
89+
resultClass="LineItem">
9090
select
9191
LineItem_ID as Id,
9292
LineItem_Code as Code,
@@ -109,127 +109,127 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
109109
where Order_ID = #Order_ID#
110110
and LineItem_ID = #LineItem_ID#
111111
</statement>
112-
113-
<statement id="GetSpecificLineItemWithPicture"
114-
parameterClass="Hashtable"
115-
resultClass="LineItem">
116-
select
117-
LineItem_ID as Id,
118-
LineItem_Code as Code,
119-
LineItem_Quantity as Quantity,
120-
LineItem_Price as Price,
121-
LineItem_Picture as PictureData
122-
from LineItems
123-
where Order_ID = #Order_ID#
124-
and LineItem_ID = #LineItem_ID#
125-
</statement>
126-
127-
<select id="GetDynSpecificLineItem"
128-
parameterClass="HashMap"
129-
resultClass="LineItem">
130-
select
131-
LineItem_ID as Id,
132-
LineItem_Code as Code,
133-
LineItem_Quantity as Quantity,
134-
LineItem_Price as Price
135-
from LineItems
136-
where Order_ID = #Order_ID:Int#
137-
<dynamic>
138-
<isNotNull property="LineItem_ID">
139-
and LineItem_ID = #LineItem_ID:Int#
140-
</isNotNull>
141-
</dynamic>
142-
</select>
143-
144-
<statement id="GetSpecificLineItemWithNullReplacement"
145-
parameterClass="int"
146-
resultMap="LineItemWithNullReplacement">
147-
select
148-
LineItem_ID,
149-
LineItem_Code,
150-
LineItem_Quantity,
151-
LineItem_Price
152-
from LineItems
153-
where LineItem_ID = #value#
154-
</statement>
155-
156-
<statement id="InsertLineItem"
157-
parameterMap="insert-params" >
158-
insert into LineItems
159-
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
160-
values
161-
(?, ?, ?, ?, ?);
162-
</statement>
163-
164-
<statement id="InsertLineItemWithPicture"
165-
parameterMap="insert-params-picture" >
166-
insert into LineItems
167-
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price, LineItem_Picture)
168-
values
169-
(?, ?, ?, ?, ?, ?);
170-
</statement>
171-
172-
<insert id="InsertLineItemPostKey" parameterClass="LineItem">
173-
insert into LineItems
174-
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
175-
values
176-
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
177-
<selectKey property="Id" type="post" resultClass="int" >
178-
select 99 from LineItems where LineItem_ID = 1 and Order_ID=1
179-
</selectKey>
180-
</insert>
181-
182-
<insert id="InsertLineItemPreKey" parameterClass="LineItem">
183-
<selectKey property="Id" type="pre" resultClass="int" >
184-
select 99 from LineItems where LineItem_ID = 1 and Order_ID=1
185-
</selectKey>
186-
insert into LineItems
187-
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
188-
values
189-
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
190-
</insert>
112+
113+
<statement id="GetSpecificLineItemWithPicture"
114+
parameterClass="Hashtable"
115+
resultClass="LineItem">
116+
select
117+
LineItem_ID as Id,
118+
LineItem_Code as Code,
119+
LineItem_Quantity as Quantity,
120+
LineItem_Price as Price,
121+
LineItem_Picture as PictureData
122+
from LineItems
123+
where Order_ID = #Order_ID#
124+
and LineItem_ID = #LineItem_ID#
125+
</statement>
126+
127+
<select id="GetDynSpecificLineItem"
128+
parameterClass="HashMap"
129+
resultClass="LineItem">
130+
select
131+
LineItem_ID as Id,
132+
LineItem_Code as Code,
133+
LineItem_Quantity as Quantity,
134+
LineItem_Price as Price
135+
from LineItems
136+
where Order_ID = #Order_ID:Int#
137+
<dynamic>
138+
<isNotNull property="LineItem_ID">
139+
and LineItem_ID = #LineItem_ID:Int#
140+
</isNotNull>
141+
</dynamic>
142+
</select>
143+
144+
<statement id="GetSpecificLineItemWithNullReplacement"
145+
parameterClass="int"
146+
resultMap="LineItemWithNullReplacement">
147+
select
148+
LineItem_ID,
149+
LineItem_Code,
150+
LineItem_Quantity,
151+
LineItem_Price
152+
from LineItems
153+
where LineItem_ID = #value#
154+
</statement>
155+
156+
<statement id="InsertLineItem"
157+
parameterMap="insert-params" >
158+
insert into LineItems
159+
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
160+
values
161+
(?, ?, ?, ?, ?);
162+
</statement>
163+
164+
<statement id="InsertLineItemWithPicture"
165+
parameterMap="insert-params-picture" >
166+
insert into LineItems
167+
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price, LineItem_Picture)
168+
values
169+
(?, ?, ?, ?, ?, ?);
170+
</statement>
171+
172+
<insert id="InsertLineItemPostKey" parameterClass="LineItem">
173+
insert into LineItems
174+
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
175+
values
176+
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
177+
<selectKey property="Id" type="post" resultClass="int" >
178+
select 99 from LineItems where LineItem_ID = 1 and Order_ID=1
179+
</selectKey>
180+
</insert>
181+
182+
<insert id="InsertLineItemPreKey" parameterClass="LineItem">
183+
<selectKey property="Id" type="pre" resultClass="int" >
184+
select 99 from LineItems where LineItem_ID = 1 and Order_ID=1
185+
</selectKey>
186+
insert into LineItems
187+
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
188+
values
189+
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
190+
</insert>
191191

192-
<insert id="InsertLineItemNoKey" parameterClass="LineItem">
193-
insert into LineItems
194-
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
195-
values
196-
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
197-
</insert>
192+
<insert id="InsertLineItemNoKey" parameterClass="LineItem">
193+
insert into LineItems
194+
(LineItem_ID, Order_ID, LineItem_Code, LineItem_Quantity, LineItem_Price)
195+
values
196+
(#Id#, #Order.Id#, #Code#, #Quantity#, #Price:Decimal#)
197+
</insert>
198198

199-
<!-- JIRA 23 -->
200-
<delete id="DeleteWithComments" >
201-
<!-- Delete LineItems -->
202-
delete from LineItems where Order_ID = 10
203-
<!-- Delete LineItems -->
204-
delete from LineItems where Order_ID = 9
205-
</delete>
206-
199+
<!-- JIRA 23 -->
200+
<delete id="DeleteWithComments" >
201+
<!-- Delete LineItems -->
202+
delete from LineItems where Order_ID = 10
203+
<!-- Delete LineItems -->
204+
delete from LineItems where Order_ID = 9
205+
</delete>
206+
207207
</statements>
208-
208+
209209

210210

211-
<parameterMaps>
211+
<parameterMaps>
212212

213213
<parameterMap id="select-params" class="int">
214214
<parameter property="Order_ID" />
215215
</parameterMap>
216216

217-
<parameterMap id="insert-params" class="LineItem">
218-
<parameter property="Id" />
219-
<parameter property="Order.Id" />
220-
<parameter property="Code" />
221-
<parameter property="Quantity" />
222-
<parameter property="Price" dbType="Decimal" nullValue="-99.99"/>
223-
</parameterMap>
224-
225-
<parameterMap id="insert-params-picture" class="LineItem">
226-
<parameter property="Id" />
227-
<parameter property="Order.Id" />
228-
<parameter property="Code" />
229-
<parameter property="Quantity" />
230-
<parameter property="Price" dbType="Decimal" />
231-
<parameter property="PictureData" dbType="Image" />
232-
</parameterMap>
233-
234-
</parameterMaps>
217+
<parameterMap id="insert-params" class="LineItem">
218+
<parameter property="Id" />
219+
<parameter property="Order.Id" />
220+
<parameter property="Code" />
221+
<parameter property="Quantity" />
222+
<parameter property="Price" dbType="Decimal" nullValue="-99.99"/>
223+
</parameterMap>
224+
225+
<parameterMap id="insert-params-picture" class="LineItem">
226+
<parameter property="Id" />
227+
<parameter property="Order.Id" />
228+
<parameter property="Code" />
229+
<parameter property="Quantity" />
230+
<parameter property="Price" dbType="Decimal" />
231+
<parameter property="PictureData" dbType="Image" />
232+
</parameterMap>
233+
234+
</parameterMaps>
235235
</sqlMap>

0 commit comments

Comments
 (0)