Lift uses the SQL IN statement rather than joins. This has a negative impact for users of MySQL and Derby.
Try: TagUser.findAll(By(TagUser.tag, this), In(TagUser.user, User.id, OrderBy(User.followers_count, Descending), MaxRows[User](10))) On Mon, Jan 4, 2010 at 11:10 PM, Mads Hartmann <[email protected]> wrote: > My ultimate goal would be to only pull out the top x users. I'm > currently using the following code to achieve this: > > TagUser.findAll(By(TagUser.tag, this.id)).map(_.user.obj.open_!) > .sort(_.followers_count.is > _.followers_count.is) > .take(x) > > But im concerned that this creates an instance for each of the users > in tag tag even though i only need the top x. > > Thanks for helping me out :) > > On Jan 5, 1:47 am, David Pollak <[email protected]> wrote: > > On Mon, Jan 4, 2010 at 3:24 PM, Mads Hartmann <[email protected]> wrote: > > > Hello, I'm having a problem and I'm sure it's an easy fix for someone > > > with a bit more experience > > > > > I have 3 model classes: tag, user, tweet and a join class TagUser. A > > > tag has a list of users. > > > > > If i want all of the users in a tag i use the following code (which > > > works): > > > > > def users = TagUser.findAll(By(TagUser.tag, this.id)).map > > > (_.user.obj.open_!) > > > > > my problem is that i can't figure out how to apply queryparams so i > > > don't pull out all of the users from the DB if i don't need em. I was > > > thinking something like this (doesn't compile): > > > > > def getTopUsers(in: Int) :List[User] = { > > > TagUser.findAll(By(TagUser.tag, this.id), > > > OrderBy(User.followers_count, Descending), > > > MaxRows(in)) > > > > There is an issue: > > > > OrderBy(User.xxxx, Descending) // illegal... you can only order by a > > TagUser.xxx field > > > > And a potential issue: > > > > MaxRows[TagUser](in) // sometimes the Type Inferencer doesn't get it > right. > > > > What's your ultimate goal? > > > > > > > > > > > > > } > > > > > I get the following error: > > > [ERROR] ... error: overloaded method value findAll with alternatives > > > (net.liftweb.mapper.QueryParam[scalableKvidr.model.TagUser]*)List > > > [scalableKvidr.model.TagUser] <and> ()List > > > [scalableKvidr.model.TagUser] cannot be applied to > > > (net.liftweb.mapper.Cmp > > > [scalableKvidr.model.TagUser,Long],net.liftweb.mapper.OrderBy > > > [scalableKvidr.model.User,Int],net.liftweb.mapper.MaxRows[Nothing]) > > > > > -- > > > > > You received this message because you are subscribed to the Google > Groups > > > "Lift" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<liftweb%[email protected]> > <liftweb%[email protected]<liftweb%[email protected]>> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/liftweb?hl=en. > > > > -- > > Lift, the simply functional web frameworkhttp://liftweb.net > > Beginning Scalahttp://www.apress.com/book/view/1430219890 > > Follow me:http://twitter.com/dpp > > Surf the harmonics > > -- > > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<liftweb%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > > -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics--
You received this message because you are subscribed to the Google Groups "Lift" 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/liftweb?hl=en.
