On Sun, Feb 21, 2010 at 8:01 PM, Clinton Begin <[email protected]>wrote:
> It rolls up by <id> elements, or if none exist, it rolls up by all columns
> (which is why specifying an id is important).
>
I did provide an id which adds to my confusion.
<association property="attributeValue" column="attributeValueID"
javaType="AttributeValue">
<id property="attributeValueID" column="attributeValueID"/>
The select is:
SELECT
aga.parentValueID,
aga.objectType,
aga.defaultValueFlag,
aga.attributeValueID,
av.value,
av.attributeValueDesc,
av.requiredFlag
FROM
> Clinton
>
>
> On Sun, Feb 21, 2010 at 5:55 PM, Rick R <[email protected]> wrote:
>
>> I'm now starting to get into using ibatis3 more and I'm curious about why
>> a 'roll up' is happening (based on a column I didn't mention as a rollup
>> column) when I use an association. I'm sure it's something stupid I'm
>> missing but I don't see it.
>>
>> For example this flat structure works just fine, and its what I've used in
>> ibatis2 for a simple flat structure:
>>
>> <resultMap id="ProdAttrGroupAttrValueResultWithAttributeValue"
>> type="ProdAttrGroupAttrValue">
>> <result column="defaultValueFlag" property="defaultValueFlag"
>> jdbcType="CHAR" />
>> <result column="objectType" property="objectType"
>> jdbcType="VARCHAR" />
>> <result column="parentValueID" property="parentValueID"
>> jdbcType="INTEGER" />
>> <!-- the ProAttrGroupAttrValue has an attributeValue object
>> property: -->
>> <result property="attributeValue.attributeValueID"
>> column="attributeValueID"/>
>> <result column="value" property="attributeValue.value"
>> jdbcType="VARCHAR"/>
>> <result column="attributeValueDesc"
>> property="attributeValue.attributeValueDesc" jdbcType="VARCHAR" />
>> <result column="requiredFlag"
>> property="attributeValue.requiredFlag" jdbcType="CHAR" />
>> </resultMap>
>>
>> But I thought I should follow ibatis3 conventions and use an association
>> to make it more clear:
>>
>> <resultMap id="ProdAttrGroupAttrValueResultWithAttributeValue"
>> type="ProdAttrGroupAttrValue">
>> <result column="defaultValueFlag" property="defaultValueFlag"
>> jdbcType="CHAR" />
>> <result column="objectType" property="objectType"
>> jdbcType="VARCHAR" />
>> <result column="parentValueID" property="parentValueID"
>> jdbcType="INTEGER" />
>> <!-- using an association instead -->
>> <association property="attributeValue" column="attributeValueID"
>> javaType="AttributeValue">
>> <id property="attributeValueID" column="attributeValueID"/>
>> <result column="value" property="value" jdbcType="VARCHAR"/>
>> <result column="attributeValueDesc"
>> property="attributeValueDesc" jdbcType="VARCHAR" />
>> <result column="requiredFlag" property="requiredFlag"
>> jdbcType="CHAR" />
>> </association>
>> </resultMap>
>>
>> However, when I use the latter association approach I end up getting rows
>> completely thrown out, but I'm not sure why and/or what logic its using.
>> The query returns 13 rows, but I only end up with 7 objects in the latter
>> association approach..
>>
>>
>> DEBUG [main] java.sql.PreparedStatement debug- ==> Parameters: 2(Integer),
>> 12(Integer), 100(Integer)
>> DEBUG [main] java.sql.ResultSet debug- <== Columns: parentValueID,
>> objectType, defaultValueFlag, attributeValueID, value, attributeValueDesc,
>> requiredFlag
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15282, Checkbox, Y,
>> 9042, AA, US AA %, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15282, Checkbox, N,
>> 9043, GAA, US GAA %, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 9043, Checkbox, N,
>> 12059, nonOrderedGAATelecasts, Allow Non Ordered GAA, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15282, Checkbox, N,
>> 12371, cvgAApercent, CVG AA %, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15282, Checkbox, N,
>> 13260, cvgGAApercent, CVG GAA %, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 12524, Checkbox, N,
>> 9044, HUT/Share, US HUT/PUT and Share %, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 12524, Checkbox, N,
>> 9063, MAMI, Median Age / Median Income, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15298, Checkbox, N,
>> 15299, indexP2, Index % P2+, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15298, Checkbox, N,
>> 15304, CVG_Index_P18_plus, CVG Index % P18+, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 12396, Checkbox, N,
>> 12391, Commercial, National Commercial Statistics, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15284, Checkbox, N,
>> 9064, RGL, Reach, Gain/Loss, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15284, Checkbox, N,
>> 11135, vcrContribution, VCR Contribution, N
>> DEBUG [main] java.sql.ResultSet debug- <== Row: 15284, Checkbox, N,
>> 11134, avgMinutesViewed, Average Minutes Viewed, N
>>
>>
>> 13 rows but only 7 Objects using association:
>>
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@40e99ce5
>> [
>> defaultValueFlag=Y
>> objectType=Checkbox
>> parentValueID=15282
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@342f356f
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=9042
>> value=AA
>> attributeValueDesc=US AA %
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@75d252d
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=15282
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@7433b121
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=13260
>> value=cvgGAApercent
>> attributeValueDesc=CVG GAA %
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@6db22920
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=9043
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@4baa2c23
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=12059
>> value=nonOrderedGAATelecasts
>> attributeValueDesc=Allow Non Ordered GAA
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@5f18223d
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=12524
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@29700391
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=9063
>> value=MAMI
>> attributeValueDesc=Median Age / Median Income
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@78fa39d7
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=15298
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@73eb904d
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=15304
>> value=CVG_Index_P18_plus
>> attributeValueDesc=CVG Index % P18+
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@6e4eeaaf
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=12396
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@7f11bfbc
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=12391
>> value=Commercial
>> attributeValueDesc=National Commercial Statistics
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>> DEBUG [main] com.nielsen.dataselector.media.service.TestAttributeGroup
>> testGetStatistics- TestAttributeGroup ProdAttrGroupAttrValue:
>> com.nielsen.dataselector.media.service.model.prodattrgroupattrva...@664310d0
>> [
>> defaultValueFlag=N
>> objectType=Checkbox
>> parentValueID=15284
>> productID=<null>
>> sequenceNumber=<null>
>>
>> attributevalue=com.nielsen.dataselector.media.service.model.attributeva...@3d04fc23
>> [
>> attributeValueDependencies=<null>
>> attributeValueID=11134
>> value=avgMinutesViewed
>> attributeValueDesc=Average Minutes Viewed
>> requiredFlag=N
>> ]
>> attributeGroup=<null>
>> ]
>>
>>
>
--
Rick R