summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/das-java-faq.html
blob: d6ab185c7f908baac080f36b2b1ddbc17eafd057 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE- 2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
    <HEAD>
		<!-- generateKeywords macro -->
	    <META name="description" content="Apache Tuscany">
        <META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture,  sca, service component architecture, das, sdo, csa, ruby, opensource">
		<!-- generateKeywords macro end -->
		
        <LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
        <LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANY/$images/favicon.ico">   
        <TITLE>Apache Tuscany : DAS Java - FAQ</TITLE>
    <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
    
    <BODY onload="init()">
        <!-- topNav macro -->
		<TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
			<TR>
				<TD valing="top" align="left">
					<A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
				</TD>
				<TD>
					<A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
				</TD>
				
				<TD width="100%">
					&nbsp;
				</TD>

				<!-- Adds the edit page link to the top banner-->
				<TD valign="bottom">
					<DIV style="padding: 2px 10px; margin: 0px;">
						<A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=50994">
						<IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
					</DIV>
				</TD>

			</TR>
		</TABLE>
        <!-- topNav macro end -->

		<!-- breadCrumbs macro -->
		<TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
			<TR class="topBar">
				<TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
					&nbsp;<A href="home.html" title="Apache Tuscany">Apache Tuscany</A>&nbsp;&gt;&nbsp;<A href="home.html" title="Home">Home</A>&nbsp;&gt;&nbsp;<A href="das-overview.html" title="DAS Overview">DAS Overview</A>&nbsp;&gt;&nbsp;<A href="das-java.html" title="DAS Java">DAS Java</A>&nbsp;&gt;&nbsp;<A href="das-java-documentation-menu.html" title="DAS Java Documentation Menu">DAS Java Documentation Menu</A>&nbsp;&gt;&nbsp;<A href="das-java-developer-guide.html" title="DAS Java Developer Guide">DAS Java Developer Guide</A>&nbsp;&gt;&nbsp;<A href="rdb-das-java.html" title="RDB DAS Java">RDB DAS Java</A>&nbsp;&gt;&nbsp;<A href="" title="DAS Java - FAQ">DAS Java - FAQ</A>
				</TD>
				
				<TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
				<A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>&nbsp;&nbsp;
				</TD>
			</TR>
		</TABLE>
		<!-- breadCrumbs macro end -->


        <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
            <TR>
                <TD align="left" valign="top">

					<!-- pageContent macro -->
					<DIV id="PageContent">
												
						<DIV class="pagecontent">
							<DIV class="wiki-content">
								<TABLE class="sectionMacroWithBorder" border="0" cellpadding="5" cellspacing="0" width="100%"><TBODY><TR>
<TD class="confluenceTd" valign="top" width="15%">
<DIV class="panel" style="background-color: #ECF4D1;border-color: #C3CDA1;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #C3CDA1;background-color: #C3CDA1;"><B>General</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
<P><A href="home.html" title="Home">Home</A><BR>
<A href="http://www.apache.org/licenses/LICENSE-2.0.html" class="external-link" rel="nofollow">License </A><BR>
<A href="das-java-get-involved.html" title="DAS Java Get Involved">Get Involved</A><BR>
<A href="das-java-found-a-bug.html" title="DAS Java Found A Bug">Found a Bug?</A></P>
</DIV></DIV>
<DIV class="panel" style="background-color: #ECF4D1;border-color: #b4b4b5;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #b4b4b5;background-color: #C3CDA1;"><B>DAS Java</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
<P><A href="das-java.html" title="DAS Java">DAS Java Home</A><BR>
<A href="" title="DAS Java - FAQ">FAQ</A><BR>
<A href="das-java-releases.html" title="DAS Java Releases">Downloads</A><BR>
<A href="das-java-documentation-menu.html" title="DAS Java Documentation Menu">Documentation</A><BR>
<A href="https://svn.apache.org/repos/asf/tuscany/java/das/" class="external-link" rel="nofollow">Source Code</A></P>
</DIV></DIV></TD>
<TD class="confluenceTd" valign="top" width="85%">

<P>Welcome to the Apache Tuscany Java DAS RDB FAQ page. Please help to keep the information on this page current.</P>

<P><BR class="atl-forced-newline"></P>
<DIV class="panel" style="background-color: #ECF4D1;border-color: #C3CDA1;border-style: solid;border-width: 1px;"><DIV class="panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #C3CDA1;background-color: #C3CDA1;"><B>Apache Tuscany RDB DAS Frequently Asked Questions</B></DIV><DIV class="panelContent" style="background-color: #ECF4D1;">
<UL>
	<LI><A href="#DASJava-FAQ-RDBDASthreadsafety">RDB DAS thread safety</A></LI>
	<LI><A href="#DASJava-FAQ-MigrationfromM2">Migration from M2</A></LI>
	<LI><A href="#DASJava-FAQ-transactionmanagement">Handling internal/external transaction management</A></LI>
	<LI><A href="#DASJava-FAQ-handlingparent%252Fchildrelationship">Handling parent/child relationship</A></LI>
	<LI><A href="#DASJava-FAQ-mapping">How does DAS handle mapping between DataGraph properties and Database Metadata like table name, column name etc. during disconnected processing </A></LI>
	<LI><A href="#DASJava-FAQ-noPKdefined">no PK defined </A></LI>
	<LI><A href="#DASJava-FAQ-RDBDASsupportforgeneratedkeys">RDB DAS support for generated keys</A></LI>
	<LI><A href="#DASJava-FAQ-HowDASworkswithDataobjects">How DAS works with Dataobjects</A></LI>
	<LI><A href="#DASJava-FAQ-OptimisticConcurrencyControl">What is Optimistic Concurrency Control?</A></LI>
	<LI><A href="#DASJava-FAQ-keyRestricted">What is the purpose of many and keyRestricted attributes in Relationship?</A></LI>
	<LI><A href="#DASJava-FAQ-paging">what is paging capability?</A></LI>
	<LI><A href="#DASJava-FAQ-ResultSet">Example to define the ResultSet shape Definition for a join in DAS</A></LI>
	<LI><A href="#DASJava-FAQ-blob">Does RDB DAS support datatypes like Blob?</A></LI>
	<LI><A href="#DASJava-FAQ-namedParams">Does DAS support named parameters passing?</A>
<BR class="atl-forced-newline">
&nbsp;</LI>
</UL>
</DIV></DIV>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-RDBDASthreadsafety"></A><DIV class="" style="background-color: #C3CDA1;">RDB DAS thread safety</DIV>
</H2>
<P>DAS design should support thread safety, but we have done no explicit testing on this area.<BR>
Initializing a DAS and using across multiple DAS calls should be OK and safe as long as you are using the same config file. I'd recommend initializing the DAS in a sync method tough.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-MigrationfromM2"></A><DIV class="" style="background-color: #C3CDA1;">Migration from M2</DIV>
</H2>
<P>I'm getting &quot;Feature 'Config' not found.&quot; after migrating my application for after M2 codebase.</P>

<P>There was a change (see <A href="http://issues.apache.org/jira/browse/TUSCANY-899" class="external-link" rel="nofollow">http://issues.apache.org/jira/browse/TUSCANY-899</A>). To fix this, changed the attribute &quot;xmlns&quot;'s value of the &quot;config&quot; tag to &quot;http:///org.apache.tuscany.das.rdb/config.xsd&quot;. </P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-transactionmanagement"></A><DIV class="" style="background-color: #C3CDA1;">Handling internal/external transaction management</DIV>
</H2>

<P>In DAS Config, element ConnectionInfo has a boolean attribute managedtx (default true). <BR>
If it is true, DAS runtime manages transaction otherwise the caller is supposed to manage<BR>
transaction.<BR>
In cases, when the connection is externally passed (config file does not specify ConnectionInfo),<BR>
the managedtx attribute default value ( true) is assumed.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-handlingparent%2Fchildrelationship"></A><DIV class="" style="background-color: #C3CDA1;">Handling parent/child relationship</DIV>
</H2>
<P><B>Question:</B> If two tables have a parent-child relationship but the query result set contains only columns from one table, does RDB DAS result DataGraph contain data from both parent and child table?</P>

<P>The RDB DAS will only populate a graph with data returned from the used query. If you want a <BR>
graph that contains data from related tables then the query provided must return that data <BR>
(typically a join). The relationship tests in the test suite demonstrate this.</P>

<P><B>Question:</B> If two tables have a parent-child relationship and the query result set contains columns from both tables, is the relationship analyzed by DAS when, </P>
<OL>
	<LI>DAS Config explicitly defines relationship</LI>
	<LI>DAS Config does not explicitly define relationship?</LI>
</OL>


<P>DAS supports some Convention over Configuration when it comes to supporting implied relationships.<BR>
<A href="http://cwiki.apache.org/confluence/display/TUSCANY/ConventionOverConfiguration" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/ConventionOverConfiguration</A><BR>
<A href="http://cwiki.apache.org/confluence/display/TUSCANY/ForeignKeyRepresentationAndManagement" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/ForeignKeyRepresentationAndManagement</A><BR>
<A href="http://cwiki.apache.org/confluence/display/TUSCANY/WorkingWithRelationships" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/WorkingWithRelationships</A><BR>
Also, see test: ImpliedRelationshipTests.testAddNewOrder() </P>

<P>So, in summary, if the query has a where clause specifying the relationship, there is no need to <BR>
have any relationship definition in config file as long as the column names (PK, FK) follow the<BR>
naming conventions. </P>

<P>In the absence of naming conventions, the relationship needs to be explicitly defined in the config,<BR>
so that the query result is mapped against it and the necessary result DataGraph is represented <BR>
reflecting the relationship.</P>

<P><B>Question:</B> When there is 1:n relationship between 2 tables, say Department:Employee, and there is a DataGraph with this relationship present, can one Employee DataObject from this graph be associated with 2 different Department DataObjects, using DAS Java Client? i.e. can 1:n relationship be changed to n:n using SDO?_</P>

<P>No, when this is attempted, SDO maintains referential integrity. e.g.<BR>
If you have a dept1 with emp1 and then execute:<BR>
   dep2.getEmployees.add(emp1)<BR>
the graph will automatically remove emp1 from dep1's list of employees and<BR>
you are left with valid 1:m relationship.</P>

<P><B>Question:</B> In case of parent-child relationship, how to traverse back and forth?</P>

<P>If by Convention over Configuration/from DAS Config there is a name to a relationship, the opposite relationship is named with _opposite appended to it.</P>

<P>e.g. Consider two tables (CUSTOMER, ORDER) each with a PK named &quot;ID&quot;. Also, ORDER has a FK named CUSTOMER_ID. The DAS recognizes this convention and assumes a one:many relationship between CUSTOMER and ORDER. In the fully dynamic case, a read of CUSTOMER and ORDER tables using a join will result in a graph of CUSTOMER DataObjects along with their related ORDERS.(name of relationship is ORDERS now.) </P>

<P>The property for the CUSTOMER Types list of ORDERs is named &quot;ORDER&quot; so:<BR>
  DataObject order = cust.getDataObject(&quot;ORDER<A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=1&linkCreation=true&fromPageId=50994" class="createlink">1</A>&quot;);<BR>
The name of the property in the ORDER Type that references the parent CUSTOMER, is <BR>
  DataObject cust = order.getDataObject(&quot;CUSTOMER_opposite&quot;)</P>


<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-mapping"></A><DIV class="" style="background-color: #C3CDA1;">How does DAS handle mapping between DataGraph properties and Database Metadata like table name, column name etc. during disconnected processing. </DIV>
</H2>

<P>DAS supports this mapping using DAS Config and in the absence of that using Convention over Configuration.<BR>
<A href="http://cwiki.apache.org/confluence/display/TUSCANY/ConventionOverConfiguration" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/ConventionOverConfiguration</A>. DataObject graph<BR>
change summary contains old as well as modified values. Using this change summary and config/conventions DAS can support the necessary mapping. </P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-noPKdefined"></A><DIV class="" style="background-color: #C3CDA1;">no PK defined </DIV>
</H2>
<P>Does DAS support working with tables that have no PK defined?</P>

<P>DAS mandates PK for any table, either specified in DAS Config or by following convention. In absence <BR>
of both of these, DAS throws an error. Having PK ensures uniqueness of Data Object - returned as query result.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-RDBDASsupportforgeneratedkeys"></A><DIV class="" style="background-color: #C3CDA1;">RDB DAS support for generated keys </DIV>
</H2>

<P>This is supported for INSERT operation - either explicit insert (SQL INSERT statement as DAS command) or generated insert. <BR>
In case of generated insert, the DAS config needs to have Column element having attribute &quot;generated&quot; set to &quot;true&quot;. This attribute is not needed in case of explicit insert.<BR>
In case of generated insert, &quot;generated&quot; attribute from Column element in Config is checked to form the appropriate insert statement. The jdbc supported PreparedStatement.getGeneratedKeys() is used to fetch the values being generated by the database. In case of generated insert, the value thus returned is set in DataGraph.</P>

<P>New boolean attribute added in Config - &quot;generatedKeysSupported&quot;. User can set true/false for this in Config. If not set in Config, JDBC Metadata API check supportsGetGeneratedKeys() is done to detect whether to use auto generated keys during INSERT. </P>

<P>Note: For Derby, always assumed generatedKeysSupported=TRUE. This is because current Derby API return FALSE for supportsGetGeneratedKeys(), as it is partially implemented, but in DAS context, this support is sufficient.</P>

<P>This gived user flexibility to turn on/off support for database generated keys during INSERT based on the<BR>
database vendor/driver version in use.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-HowDASworkswithDataobjects"></A><DIV class="" style="background-color: #C3CDA1;">How DAS works with Dataobjects</DIV>
</H2>

<P>DAS can get DataObject using Dynamic approach or Static approach. In Dynamic approach the query result set is used to form the DataObject. In static approach, DAS Config's DataObjectModel attribute needs a valid value, using which the DataObjects are created.<BR>
For more details see <A href="http://cwiki.apache.org/confluence/display/TUSCANY/Graph%20Merge" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/Graph+Merge</A>.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-OptimisticConcurrencyControl"></A><DIV class="" style="background-color: #C3CDA1;">What is Optimistic Concurrency Control?</DIV>
</H2>
<P>See details on <A href="http://cwiki.apache.org/confluence/display/TUSCANY/OptimisticConcurrencyControl" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/OptimisticConcurrencyControl</A></P>

<P>By default OCC is ON. With this, in generated UPDATE statement, any column undergoing change also gets included in the WHERE clause.</P>

<P>Other than that, in DAS Config, in &lt;Table&gt; element , the &lt;Column&gt; element can have two boolean attributes:- managed(default true), collision</P>

<P>When collision=true for a column, during UPDATE statement generation, that column is included<BR>
in the WHERE clause.</P>

<P>When managed=true for a column, during UPDATE statement generation, that column (needs to be BigDecimal) value is incremented by 1 and used in the SET clause in UPDATE.</P>

<P>managed=true, is effective only when collision=true, else managed attribute value is ignored.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-keyRestricted"></A><DIV class="" style="background-color: #C3CDA1;">What is the purpose of many and keyRestricted attributes in Relationship? </DIV>
</H2>
<P>many=true allows for 1:n relationship. If it is false, it's 1:1 relationship. In case of 1:1 relationship, if keyRestricted is not specified, the link (relationship) between the parent and child rows can be broken, by setting the parentKeyTable's row to null/deleting the row. Also, a different parent row can be associated to the child row, which has one pre-existing parent row association. If keyRestricted=true, this kind on change in existing relationship is not allowed, user will get exception 'Can not modify a one to one relationship that is key restricted'.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-paging"></A><DIV class="" style="background-color: #C3CDA1;">what is paging capability? </DIV>
</H2>
<P>What is currently available in DAS is detailed on <A href="http://cwiki.apache.org/confluence/display/TUSCANY/WorkingWithPaging" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/TUSCANY/WorkingWithPaging</A><BR>
Other than sequential page access(pager.next(), pager.previous()), random access is also<BR>
allowed using pager.getPage(number).</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-ResultSet"></A><DIV class="" style="background-color: #C3CDA1;"> Example to define the ResultSet shape Definition for a join in DAS</DIV>
</H2>
<P>Doing: </P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
<PRE class="code-java">
Select a.dept_name, b.employee_name
from dept a, emp b
where a.id = b.dept_id (+)
</PRE>
</DIV></DIV>
<P>How do I define an Explicit ResultSet shape definition for the resultset from a join?</P>

<P>You can find some information on the DAS User Guide <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=1&linkCreation=true&fromPageId=50994" class="createlink">1</A>. There are<BR>
couple test cases that also show this working, here is one test case<BR>
<A href="2.html" title="2">2</A> and it's config file <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=3&linkCreation=true&fromPageId=50994" class="createlink">3</A>.</P>

<P>Allow passing ResultDescriptor to Dynamic Commands. i.e. Command x = das.createCommand(&quot;y&quot;);<BR>
x can have set/get of single/list of ResultDescriptors. Useful for databases like Oracle<BR>
which require user to pass ResultDescriptor and for cases when the commands are created dynamically<BR>
using createCommand()</P>

<P><A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=1&linkCreation=true&fromPageId=50994" class="createlink">1</A> <A href="http://incubator.apache.org/tuscany/explicit-resultset-shape-definition.html" class="external-link" rel="nofollow">http://incubator.apache.org/tuscany/explicit-resultset-shape-definition.html</A><BR>
<A href="2.html" title="2">2</A> <A href="https://svn.apache.org/repos/asf/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java" class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java</A><BR>
<A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANY&title=3&linkCreation=true&fromPageId=50994" class="createlink">3</A> <A href="https://svn.apache.org/repos/asf/incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml" class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml</A></P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-blob"></A><DIV class="" style="background-color: #C3CDA1;">Does DAS support datatypes like Blob? </DIV>
</H2>
<P>RDB DAS supports SQL Data Types like Blob, Clob, ByteArray, Array.</P>

<H2><A name="DASJava-FAQ-"></A><A name="DASJava-FAQ-namedParams"></A><DIV class="" style="background-color: #C3CDA1;"> Does DAS support named parameters passing?</DIV>
</H2>
<P>User can do Command.setParameter(String name, Object value), getParameter(String name). Indexed set/getParameter() is available as before. Also &lt;create&gt;, &lt;update&gt;, &lt;delete&gt; from Config support named parameters.</P>
</TD></TR></TBODY></TABLE>
							</DIV>
						</DIV>
					</DIV>	
		            <!-- pageContent macro end -->
					
                </TD>
            </TR>
        </TABLE>

		<!-- footer macro -->
				<SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
		</SCRIPT>
		<SCRIPT type="text/javascript">
		   _uacct = "UA-1174707-5";
		   urchinTracker();
		</SCRIPT>
		
				<A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>    

		<DIV class="footer">
			Copyright � 2003-2012, The Apache Software Foundation&nbsp;&nbsp;</BR>
                        Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
		</DIV>
		<!-- footer macro end -->

    </BODY>
</HTML>