On Fri, Feb 26, 2010 at 2:10 PM, harryh <[email protected]> wrote: > Sent this to dpp the other day with the idea that it might be a useful > addition to MetaMapper. Would others find this useful? (It's a tad > PostgreSQL specific in its current form). > > object LockMode extends Enumeration { > type LockMode = Value > val AccessShare = Value("ACCESS SHARE") > val RowShare = Value("ROW SHARE") > val RowExclusive = Value("ROW EXCLUSIVE") > val ShareUpdateExclusive = Value("SHARE UPDATE EXCLUSIVE") > val Share = Value("SHARE") > val ShareRowExclusive = Value("SHARE ROW EXCLUSIVE") > val Exclusive = Value("EXCLUSIVE") > val AccessExclusive = Value("ACCESS EXCLUSIVE") > } > import LockMode._ > > trait Lockable[T <: Mapper[T]] extends MetaMapper[T] { > self: T => > > def lock[T](mode: LockMode)(func: => T) = { > DB.use(dbDefaultConnectionIdentifier) { conn => > DB.statement(conn)(_.execute("LOCK TABLE "+dbTableName+" IN > "+mode.toString+" MODE")) > func > } > } > }
Looks cool. As you note, this should probably be abstracted for each DbProvider. /Jeppe -- 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.
