I think my simple solution does not work... and the implementation of
MappedPassword is not really easy to understand. I thought such
classes
would be nice for datatypes as Currency, Timespan etc... that appear
everwhere
in the application but where own tables are not useful.

The solution of  Naftoli, I tried... but maybe I did something wrong:

trait MyMappedTimeSpan[T <:Mapper[T]]{
    import net.liftweb.util._
    import net.liftweb.http.S
    import xml.NodeSeq

    object from extends MappedTime[T](this.asInstanceOf[T])
    object to extends MappedTime[T](this.asInstanceOf[T])

}

class Bericht extends LongKeyedMapper[Bericht] with IdPK with OneToMany
[Long, Bericht]{

  override def getSingleton = Bericht
  object mittag extends MyMappedTimeSpan[Bericht]
...

If someone found a simple solution, please tell me so :)

hyperion


On 16 Okt., 22:01, David Pollak <feeder.of.the.be...@gmail.com> wrote:
> On Fri, Oct 16, 2009 at 9:42 AM, Naftoli Gugenheim 
> <naftoli...@gmail.com>wrote:
>
>
>
> > I think there is support somewhere in the MappedField hierarchy for a
> > MappedField that represents to database columns. Take a look at
> > MappedPassword.
>
> Having a field represent two columns (as MappedPassword does) is a huge
> piece of pain.  I've made a ton of mistakes with Mapper, but the biggest,
> nastiest shining hairball of a mistake was compound columns.  Have I scared
> anyone off using them yet?
>
>
>
>
>
> > -------------------------------------
> > harryh<har...@gmail.com> wrote:
>
> > Make MyMappedTimeSpan a trait:
>
> > trait MyMappedTimeSpan[T <:Mapper[T]](val owner: T) {
> >  object from extends MappedTime[MapperType](this.asIntanceOf
> > [MatterType])
> >  object to extends MappedTime[MapperType](this.asIntanceOf
> > [MatterType])
> > }
>
> > And then use it like so:
>
> > class DBObject extends LongKeyedMapper[Bericht] with IdPK with
> > MyMappedTimeSpan[DBObject] {
> > }
>
> > -harryh
>
> > On Oct 16, 8:08 am, hyperion <hyperion1...@googlemail.com> wrote:
> > > Hello,
>
> > > I tried this:
>
> > > class MyMappedTimeSpan[T <:Mapper[T]](val owner: T){
> > >     import net.liftweb.util._
> > >     import net.liftweb.http.S
> > >     import xml.NodeSeq
>
> > >     val from = new MappedTime(owner)
> > >     val to = new MappedTime(owner)
> > >  }
>
> > > class DBObject extends LongKeyedMapper[Bericht] with IdPK {
>
> > >   def getSingleton = Bericht
> > >   ...
> > >   object test extends MyMappedTimeSpan(this)
>
> > > }
>
> > > and bound this class with:
> > > "from" -> bt.test.from.toForm,
> > > "to" -> bt.test.to.toForm,
>
> > > In html:
> > >                 <tr>
> > >                         <td><bt:von/></td>
> > >                         <td><bt:nach/></td>
> > >                 </tr>
>
> > > Everything worked fine... except that my timespan is completely
> > > ignored in the database ;). I think the reason is you use reflection
> > > on class DBObject to find all values that should be stored in the
> > > dabase?... but I have not inspected the source code jet... I am new to
> > > lift and also to scala....
>
> > > My Question: Is it possible to build such Datatypes based on two or
> > > more  DB-Fields of the single table...?... I think even they are
> > > mapped to the "master"-DB-table, such types could be helpful...
>
> > > Greetz
>
> --
> 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 liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to