ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gratle...@freenet.de
Subject Re: RE: Lazy loading when having dynamic table names
Date Tue, 05 May 2009 07:15:59 GMT
Well, it wasn't  my idea to do DB schema design like that...
But the DB is really big, lots of other applications are accessing it and changing the DB
schema is definetely no option, unfortunately! So please let's get back to the orignal question
now, again.

That thing about tokens sounds interesting!
Someone else here who can give more info on this possibility? Thanks, so far!


----- original Nachricht --------

Betreff: RE: Lazy loading when having dynamic table names
Gesendet: Mo 04 Mai 2009 17:27:10 CEST
Von: "meindert"<meindert@eduflex.com>

> I don't have the answer, because I haven't had the issue,
> but would it be possible to use token replacement like clinton described
> last week?
> I have no idea of you can replace the tokens runtime for the session
> though...
> 
> <select id="findOrders" parameterClass="org.test.OrderSearchCriteria"
> resultMap="OrderDataResult">
>  ORDER_${company} where ORNO = $id$
> </select>
> 
> 
> -----Original Message-----
> From: gratler69@freenet.de [mailto:gratler69@freenet.de] 
> Sent: 04 May 2009 04:04 PM
> To: user-java@ibatis.apache.org
> Subject: Lazy loading when having dynamic table names
> 
> Hi!
> 
> In our DB schema (that cannot be changed) we got dynamic table names,
> depending
> on the current company, i.e. there are tables ORDER_100, ORDER_200,... with
> ORDER_100 being company 100's ORDER table, etc. 
> 
> Now everything is fine, for a single select, as I can pass the current
> company
> as a parameter and configure query like this:
> 
> <select id="findOrders" parameterClass="org.test.OrderSearchCriteria"
> resultMap="OrderDataResult">
>  ORDER_$company$ where ORNO = $id$
> </select>
> 
> But what if i want to get ORDER table's related CUSTOMER using lazy
> loading?
> 
> Then I will need something like:
> 
> <select id="getCustomerById" resultMap="CustomerDataResult">
>   	 CUSTOMER_$company$ where CUNO =#id#
> </select>
> 
> with the resultMap of orders looking like this:
> 
> <resultMap id="OrderDataResult"  class="OrderData">
>     <result property="orderNumber" column="ORNO" />
>     <result property="customer" column="CUNO" select="getCustomerById" />
> </resultMap>
> 
> And I can see no possibility to pass the 'company' parameter to
> getCustomerById
> select...
> I think of generating sqlmap configuration dynamically, i.e. there would be
> a
> get getCustomerById_100, getCustomerById_200, etc. then. But that's poor
> and
> ugly...
> 
> What would be useful is some global variable that could be set on the
> current
> session, or something, and one could use within any statement then.
> 
> Do you have a solution to this problem?
> Any comments are greatly appreciated!
> 
> 
> 
> 
> 
> Gratis: Jeden Monat 3 SMS versenden-
> Mit freenetMail - Ihrer kostenlose E-Mail-Adresse
> http://email.freenet.de/dienste/emailoffice/produktuebersicht/basic/sms/inde
> 
> x.html?pid=6830
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.5.287 / Virus Database: 270.12.16/2094 - Release Date: 05/03/09
> 16:51:00
> 
> 

--- original Nachricht Ende ----




Ist Ihr wunschname@freenet.de noch frei?
Jetzt prüfen und kostenlose E-Mail-Adresse sichern!
http://email.freenet.de/dienste/emailoffice/produktuebersicht/basic/mail/index.html?pid=6829


Mime
View raw message