Hi,
I'm trying to create some mixins to be applied to mapper/metamapper
objects to be used when objects are always owned by an account
(ie. a multi tenant db)
The mapper parts works fine:
trait OwnedEntity {
self: BaseMapper =>
object account extends MappedLongForeignKey(this.asInstanceOf[MapperType],
Account) {
override def dbColumnName = "account_id"
override def dbDisplay_? = false
override def defaultValue = Account.currentAccount
}
}
but I can't seem to figure out the correct type bounds to create a
MetaMapper mixin that uses the above. Simple example with just a findMap
that finds all the entities owned by the current account:
trait MetaOwnedEntity[A <: OwnedEntity] {
self: A with MetaMapper[A] =>
// Find and map all entities owner by current account
def findMap[T](f: MapperType => Box[T]) : List[T] = findMap(By(account,
Account.currentAccount))(f)
}
this fails compilation (1.1-SNAPSHOT), any clues?
EntityUtils.scala:23: error: overloaded method value apply with alternatives [O
<: net.liftweb.mapper.Mapper[O],T,Q <:
net.liftweb.mapper.KeyedMapper[T,Q]](net.liftweb.mapper.MappedForeignKey[T,O,Q],net.liftweb.util.Box[Q])net.liftweb.mapper.Cmp[O,T]
<and> [O <: net.liftweb.mapper.Mapper[O],T,Q <:
net.liftweb.mapper.KeyedMapper[T,Q]](net.liftweb.mapper.MappedForeignKey[T,O,Q],Q)net.liftweb.mapper.Cmp[O,T]
<and> [O <:
net.liftweb.mapper.Mapper[O],T,U](net.liftweb.mapper.MappedField[T,O],U)(implicit
(U) => T)net.liftweb.mapper.Cmp[O,T] cannot be applied to
(MetaOwnedEntity.this.account.type,Long)
def findMap[T](f: MapperType => Box[T]) : List[T] = findMap(By(account,
Account.currentAccount))(f)
/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
-~----------~----~----~----~------~----~------~--~---