Which brings me back to my question: Is loginRequired nullable? On Wed, Aug 26, 2009 at 9:02 PM, Jim Rising<cfflex...@jimrising.com> wrote: > that would be great if i could actually evaluate it as empty or null. my > if(loginRequired GT "") evaluation is an attempt at not including > loginRequired in the map. if i can only conditionally evaluate a boolean as > true or false and not "" (empty) or NULL, i do not have the ability to > dynamically exclude it from the map because it will always evaluate as > 'false' (defaulted from transfer within my handler, then evaluated in my > conditional within my manager) even if it is left "empty" by me when i first > create the transfer object from my event handler. > > my issue is that i actually do want to filter by it, and i want to filter > 'true', 'false', as well as "true and false". > > again... i'm taking in arguments from the request scope into the event scope > (via coldbox), and turning those into a transfer object. when that transfer > object is created, empty properties are either left empty (strings) or else > default properties are applied (numeric, uuid, and boolean). the fact that > numeric and uuid apply default values has (up to now) not been an issue > because i can actually evaluate them conditionally and the likelyhood that > the defaults would show up in my data is neglligible. however, i can see how > this would also be a problem if i actually did want to filter on '0' for a > numeric property. > > -- > Jim Rising > Serial Entrepreneur > Software Engineer > Web Developer > > "Knowledge work requires both autonomy and accountability." > > On Wed, Aug 26, 2009 at 6:27 PM, Mark Mandel <mark.man...@gmail.com> wrote: >> >> But I can see that you are including it in your: >> map.loginRequired >> >> If you don't want to filter by it, then don't include it in the >> listByPropertyMap() >> >> Mark >> >> On Thu, Aug 27, 2009 at 7:35 AM, Jim Rising <cfflex...@jimrising.com> >> wrote: >>> >>> no. i want both true and false (all records independent of the boolean >>> field). >>> >>> preferably, when i am not populating setLoginRequired() myself... i >>> would rather it not include it in the where clause. >>> >>> -jim >>> >>> >>> On Aug 26, 3:35 pm, Mark Mandel <mark.man...@gmail.com> wrote: >>> > 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 <cfflex...@jimrising.com> >>> > 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 >>> > > <cfflex...@jimrising.com>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 >>> > >> <mark.man...@gmail.com>wrote: >>> > >>> > >>> Jim, I'm trying to follow you here... >>> > >>> > >>> On Wed, Aug 26, 2009 at 6:41 AM, Jim Rising >>> > >>> <cfflex...@jimrising.com>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: mark.man...@gmail.com >>> > >>> T:http://www.twitter.com/neurotic >>> > >>> W:www.compoundtheory.com >>> > >>> > -- >>> > E: mark.man...@gmail.com >>> > T:http://www.twitter.com/neurotic >>> > W:www.compoundtheory.com >>> >> >> >> >> -- >> E: mark.man...@gmail.com >> T: http://www.twitter.com/neurotic >> W: www.compoundtheory.com >> >> >> > > > > > >
-- Bob Silverberg www.silverwareconsulting.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 transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en -~----------~----~----~----~------~----~------~--~---