I'm so confused still... so you want a list of all records that are false...
but not the ones that are false? Huh?

Mark

On Thu, Aug 27, 2009 at 1:08 AM, Jim Rising <[email protected]> wrote:

> The only workaround that i've found for this is to set all of my boolean
> fields to varchar. if i do this and the request does not contain
> loginRequired, it does not seem to be included in transfer's where clause,
> thereby returning all of the true and all of the false records.
>
> --
> Jim Rising
> Serial Entrepreneur
> Software Engineer
> Web Developer
>
> "Knowledge work requires both autonomy and accountability."
>
> On Wed, Aug 26, 2009 at 10:02 AM, Jim Rising <[email protected]>wrote:
>
>> it seems that even if i do not pass my loginRequired in as part of the
>> request, it still finds it's way into transfer's where clause with the
>> default of 'false':
>>
>> 'select name, description, loginRequired, apiEventID from apievents where
>> loginRequired = false'
>>
>> the problem seems to be that because arguments.apiEvent.getLoginRequired()
>> is already set as 'false', loginRequired always evaluates as GT "", and gets
>> passed into my map. If I change it to anything else via configure() other
>> than true or false, it is no longer boolean and throws a type error (makes
>> sense). i have handled this with other data types by checking for the
>> default value, but the nature of bit values seems to create a paradox where
>> i can't just obtain a list of true and false records. :)
>>
>> ultimately what i'm wanting is that if there is nothing passed into the
>> request scope for 'loginRequired', i don't want it included in the map for
>> listByPropertyMap.
>>
>> Here is the relavent portion of my manager:
>>
>>     <cffunction name="getByAttributesRelated" access="public"
>> returntype="any">
>>         <cfargument name="apiEvent" type="transfer.com.transferObject"
>> required="true">
>>         <cfargument name="sortBy" type="string" required="false"
>> default="userID">
>>         <cfargument name="orderAsc" type="string" required="false"
>> default="true">
>>
>>         <cfset var apiEventID = arguments.apiEvent.getApiEventID()>
>>         <cfset var name = arguments.apiEvent.getName()>
>>         <cfset var description = arguments.apiEvent.getDescription()>
>>         <cfset var loginRequired = arguments.apiEvent.getLoginRequired()>
>>
>>         <cfscript>
>>         map = StructNew();
>>         if(apiEventID GT "" and apiEventID NEQ 0)
>>         {
>>             map.apiEventID = apiEventID;
>>         }
>>         if(name GT "")
>>         {
>>             map.name = name;
>>         }
>>         if(description GT "")
>>         {
>>             map.description = description;
>>         }
>>         if(loginRequired GT "")
>>         {
>>             map.loginRequired = loginRequired;
>>         }
>>
>>
>>         // get a query of the users that match this map
>>         apiEvents = transfer.listByPropertyMap("apiEvent.ApiEvent", map,
>> "#arguments.sortBy#", #arguments.orderASC#);
>>
>>
>> Thanks for the help!
>>
>> --
>> Jim Rising
>> Serial Entrepreneur
>> Software Engineer
>> Web Developer
>>
>> "Knowledge work requires both autonomy and accountability."
>>
>> On Tue, Aug 25, 2009 at 4:27 PM, Mark Mandel <[email protected]>wrote:
>>
>>> Jim, I'm trying to follow you here...
>>>
>>> On Wed, Aug 26, 2009 at 6:41 AM, Jim Rising <[email protected]>wrote:
>>>
>>>> just curious if anyone has ever run into any issues with transfer
>>>> creating default values for boolean?
>>>
>>>
>>> Transfer default boolean values to false, yes. You can override this in a
>>> configure() method.
>>>
>>>
>>>> what i'm doing, is building a transfer object out of an event into a
>>>> coldbox handler called 'apiEvent.getByAttributes', and then passing these
>>>> into a manager i've built called 'apiEvent.getByAttributes'... one of the
>>>> properties is 'loginRequired', which in mySQL is a tinyInt, and in my
>>>> transfer config is a boolean. when i instatiate the apiEvent transfer 
>>>> object
>>>> out of the event scope data (request), and there is no
>>>> event.getValue("loginRequired"), the getLoginRequired() from transfer
>>>> defaults to 'false'.
>>>
>>>
>>> Is this a problem? What would you like it to default to (in your
>>> application context)?
>>>
>>>
>>>> the problem that i am trying to resolve is simply that i would like to
>>>> retrieve via listByPropertyMap (in the manager) a list of ALL of my
>>>> apiEvents (irrespective of loginRequired) but also still be able to 
>>>> retrieve
>>>> apiEvents with loginRequired explicitly declared true or false. it seems
>>>> that i can only retrieve true or false, but not both because transfer
>>>> defaults to false. i get why it's doing it, and i've worked around it with
>>>> other field types... but have not figured out a way to deal with boolean.
>>>
>>>
>>> This is where you lose me. Maybe if you provide an example of what you
>>> are trying to do?
>>>
>>> Mark
>>>
>>> --
>>> E: [email protected]
>>> T: http://www.twitter.com/neurotic
>>> W: www.compoundtheory.com
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
> >
>


-- 
E: [email protected]
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

--~--~---------~--~----~------------~-------~--~----~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
"transfer-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to