ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Albert L. Sapp" <as...@uiuc.edu>
Subject Re: Need help---Mapping of Complex properties
Date Thu, 27 Jul 2006 13:38:55 GMT
Also, you will need to specify the userid in your second query or it 
will not know whose properties to return.  See *highlighted* part in select.

<statement id="RamBabuExtension" 
resultMap="userExtensionMapForStaticAndDynamicRamBabu">

select * from USR_EXTENSION_INFO  *where  USR_ID  =  #userid#*

</statement>

****Al

Mkhitaryan, Aram wrote:
>
> You wrote here <result property="dynamicProperty" 
> select="RamBabuExtension"/> : “*/_dynamicProperty_/*”.
>
> But in your class User you have property */_properties_/* not 
> */_dynamicProperty_/*
>
> Property name in your configuration and in your class should be the same.
>
>  
>
> Best,
>
> Aram.
>
> ------------------------------------------------------------------------
>
> *From:* rambabu.piridi@wipro.com [mailto:rambabu.piridi@wipro.com]
> *Sent:* Thursday, July 27, 2006 5:34 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
>  
>
> **what is wrong with this ?. The followign code is throwing null 
> pointer exception.**
>
> <resultMap id="userMapForStaticAndDynamicRamBabu" class="user">
>
> <result property="userid" column="USR_ID"/>
>
> <result property="role" column="ROLE_ID"/>
>
> <result property="description" column="DESCRIPTION"/>
>
> <result property="dynamicProperty" select="RamBabuExtension"/>
>
> </resultMap>
>
>  
>
> <resultMap id="userExtensionMapForStaticAndDynamicRamBabu" 
> class="dynamicProperty">
>
> <result property="propertyname" column="PROPERTY_NAME"/>
>
> <result property="propertyvalue" column="PROPERTY_VALUE"/>
>
> </resultMap>
>
>  
>
> <statement id="RamBabu" resultClass="user" 
> resultMap="userMapForStaticAndDynamicRamBabu">
>
> select * from USR_BASIC_INFO
>
> </statement>
>
> <statement id="RamBabuExtension" 
> resultMap="userExtensionMapForStaticAndDynamicRamBabu">
>
> select * from USR_EXTENSION_INFO
>
> </statement>
>
> **Thanks a lot for your help.**
>
>  
>
>  
>
> =============================
>
> Rambabu Piridi.
>
> Software Engineer,
>
> Wipro Technologies,
>
> Madhapur,
>
> Hyderabad.
>
>  
>
> e-Mail : rambabu.piridi@wipro.com <mailto:rambabu.piridi@wipro.com>
>
> Mobile:  99491 83303.
>
> ==============================
>
>  
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* Mkhitaryan, Aram [mailto:Aram.Mkhitaryan@lycos-europe.com]
> *Sent:* Thursday, July 27, 2006 5:58 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
> Now it is clear.
>
>  
>
> You have to write a select statement which will return all property 
> names and values.
>
> You have to define a new result map which will map result from first 
> select to your UserProperties class.
>
>  
>
> You have to change result map for user select and for property 
> properties you should specify only attribute 
> select=”result-map-name-of-userproperties”.
>
>  
>
> And after enabling lazy loading from settings tag, 
> lazyLoadingEnabled=”true” attribute, everything should work properly.
>
>  
>
> I hope I describe clear enough so that you can configure perfectly.
>
>  
>
> Best,
>
> Aram
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* rambabu.piridi@wipro.com [mailto:rambabu.piridi@wipro.com]
> *Sent:* Thursday, July 27, 2006 5:09 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
>  
>
> The scenario is like this.
>
>  
>
> User table: user Id, role, description
>
> User Properties info:  user Id, property name, property value.
>
>  
>
>  
>
> For one user there can be multiple user properties like this.
>
>  
>
> User table:
>
> user Id, role, description
>
> xyz,1,jfdjfjl
>
> abc,2,dljldjf
>
>  
>
> and
>
> User Properties info
>
> user Id, property name, property value
>
> xyz,city,tokyo
>
> xyz,phone,65809877
>
> xyz,desg,manager
>
>  
>
> Here one user can contain multiple user properties.
>
>  
>
> Now tell me the query how to map.
>
> there are my java bean classes.
>
>  
>
> public class User
>
> {
>
>    String userId;
>
>    int role;
>
>    String description;
>
>   List<UserProperties> properties; // This stores the list of user 
> properties objects.
>
> }
>
>  
>
> public class UserProperties
>
> {
>
>   String userId;
>
>   String propertyName;
>
>   String propertyValue;
>
> }
>
>  
>
> Is there wrong with my bean classes ?.  If not please suggest the 
> query how to write in Ibatis for lazy loading.
>
>  
>
> Thanks n Regards,
>
> =============================
>
> Rambabu Piridi.
>
> Software Engineer,
>
> Wipro Technologies,
>
> Madhapur,
>
> Hyderabad.
>
>  
>
> e-Mail : rambabu.piridi@wipro.com <mailto:rambabu.piridi@wipro.com>
>
> Mobile:  99491 83303.
>
> ==============================
>
>  
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* Mkhitaryan, Aram [mailto:Aram.Mkhitaryan@lycos-europe.com]
> *Sent:* Thursday, July 27, 2006 5:28 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
> First of all, try using JavaBeans, which means use bean object with 
> public getters and setters and make properties private.
>
>  
>
> For your question I have no answer since I have never met a sample 
> mapping for these kinds of mappings.
>
>  
>
> IBatis mapping uses java property name and column name (or index).
>
> If these names are generic (depends on sql statement result) I think 
> it is not possible to configure mapping for this.
>
>  
>
> Best,
>
> Aram
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* rambabu.piridi@wipro.com [mailto:rambabu.piridi@wipro.com]
> *Sent:* Thursday, July 27, 2006 4:24 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
>  
>
>  
>
> Hi Mkhitaryan,
>
>  
>
> I have a bean class User.java
>
>  
>
> public class User
> {
>   String id;
>   String name;
>   List  propList;
> }
>
>  
>
> I have two tables to map the user object
>
>  
>
> The first table will store the id and name of the user
>
>  
>
> id   name
>
> ---  --------
>
>  
>
>  and the second table is used to store the List of properties of the User.
>
>  
>
> The structure of the second table is
>
>  
>
> id        propName        propVal
>
> ----       --------------        ------------
>
>  
>
> Here id is the foeign key from the First table. There can be any 
> number of properties can exists for a single user.
>
>  
>
> can you please provide me the Ibatis mapping for this query using the 
> lazy initalization.
>
>  
>
> Thanks n Regards,
>
> =============================
>
> Rambabu Piridi.
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* Mkhitaryan, Aram [mailto:Aram.Mkhitaryan@lycos-europe.com]
> *Sent:* Thursday, July 27, 2006 4:36 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: Need help---Mapping of Complex properties
>
> Value from this (PRD_CAT_ID) column will be used in the lazy statement 
> (getCategory).
>
>  
>
> ------------------------------------------------------------------------
>
> *From:* rambabu.piridi@wipro.com [mailto:rambabu.piridi@wipro.com]
> *Sent:* Thursday, July 27, 2006 4:03 PM
> *To:* user-java@ibatis.apache.org
> *Subject:* Need help---Mapping of Complex properties
>
>  
>
> I am using this(This is mentioned in the Ibatis doc) to load the data.
>
> *<resultMap id=”get-product-result” class=”com.ibatis.example.Product”>*
>
> *<result property=”id” column=”PRD_ID”/>*
>
> *<result property=”description” column=”PRD_DESCRIPTION”/>*
>
> *<result property=”category” column=”**/PRD_CAT_ID/**” 
> select=”getCategory”/>*
>
> *</resultMap>*
>
> *<resultMap id=”get-category-result” class=”com.ibatis.example.Category”>*
>
> *<result property=”id” column=”CAT_ID”/>*
>
> *<result property=”description” column=”CAT_DESCRIPTION”/>*
>
> *</resultMap>*
>
> *<statement id=”getProduct” parameterClass=”int” 
> resultMap=”get-product-result”>*
>
> *select * from PRODUCT where PRD_ID = #value#*
>
> *</statement>*
>
> *<statement id=”getCategory” parameterClass=”int” 
> resultMap=”get-category-result”>*
>
> *select * from CATEGORY where **/CAT_ID /**= #value#*
>
> *</statement>*
>
>
> I have similar requirement to do lazy initalization. what is the 
> column //PRD_CAT_ID in this ?.//
>
>  
>
>  
>
> Thanks n Regards,
>
> =============================
>
> Rambabu Piridi.
>
> Software Engineer,
>
> Wipro Technologies,
>
> Madhapur,
>
> Hyderabad.
>
>  
>
> e-Mail : rambabu.piridi@wipro.com <mailto:rambabu.piridi@wipro.com>
>
> Mobile:  99491 83303.
>
> ==============================
>
>  
>
>
> The information contained in this electronic message and any 
> attachments to this message are intended for the exclusive use of the 
> addressee(s) and may contain proprietary, confidential or privileged 
> information. If you are not the intended recipient, you should not 
> disseminate, distribute or copy this e-mail. Please notify the sender 
> immediately and destroy all copies of this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient 
> should check this email and any attachments for the presence of 
> viruses. The company accepts no liability for any damage caused by any 
> virus transmitted by this email.
>
> www.wipro.com
>
>  
>
>
> The information contained in this electronic message and any 
> attachments to this message are intended for the exclusive use of the 
> addressee(s) and may contain proprietary, confidential or privileged 
> information. If you are not the intended recipient, you should not 
> disseminate, distribute or copy this e-mail. Please notify the sender 
> immediately and destroy all copies of this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient 
> should check this email and any attachments for the presence of 
> viruses. The company accepts no liability for any damage caused by any 
> virus transmitted by this email.
>
> www.wipro.com
>
>  
>
>
> The information contained in this electronic message and any 
> attachments to this message are intended for the exclusive use of the 
> addressee(s) and may contain proprietary, confidential or privileged 
> information. If you are not the intended recipient, you should not 
> disseminate, distribute or copy this e-mail. Please notify the sender 
> immediately and destroy all copies of this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient 
> should check this email and any attachments for the presence of 
> viruses. The company accepts no liability for any damage caused by any 
> virus transmitted by this email.
>
> www.wipro.com
>
>  
>
>
> The information contained in this electronic message and any 
> attachments to this message are intended for the exclusive use of the 
> addressee(s) and may contain proprietary, confidential or privileged 
> information. If you are not the intended recipient, you should not 
> disseminate, distribute or copy this e-mail. Please notify the sender 
> immediately and destroy all copies of this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient 
> should check this email and any attachments for the presence of 
> viruses. The company accepts no liability for any damage caused by any 
> virus transmitted by this email.
>
> www.wipro.com
>


Mime
View raw message