Not that I am throwing stones, but you really should raise an issue about this schema design. I perviously worked in a company that took this approach in designing their data model. As you have already seen, this is not an easy data model to work with for obvious reasons, but the greatest problem with this design is the fact that you are intermingling different companies data. How do you think General Motors would feel knowing that their data resided in tables right next to Ford's. I'm certain Ford would not like this as well. You should leverage the database's schema functionality to isolate the data properly.
[email protected] 05/04/2009 07:03 AM Please respond to [email protected] To [email protected] cc 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/index.html?pid=6830
