Naftoli would you please re-post your solution :) I could really use
the help

On Feb 5, 6:56 pm, Naftoli Gugenheim <[email protected]> wrote:
> Peek --www.getpeek.com
> Please forward any bad messages to [email protected]
>
> -------------------------------------
>
> Ross Mellgren<[email protected]> wrote:
>
> This is actually fairly common that messages Naftoli sends are empty, or 
> don't get threaded onto the original discussion, or formatting comes out 
> funny. Naftoli, what email client are you using?
>
> -Ross
>
> On Feb 5, 2010, at 1:49 AM, Mads Hartmann wrote:
>
>
>
>
>
> > Hey Naftoli,
> > I think something might have broken your first message, It's a blank
> > message if you view it through the web-interface:
> >http://groups.google.com/group/liftweb/browse_thread/thread/e2317e5db...
>
> > If you have a solution I would love to hear it :)
>
> > On Feb 5, 1:52 am, Naftoli Gugenheim <[email protected]> wrote:
> >> Does my approach not work?
>
> >> -------------------------------------
>
> >> Mads Hartmann<[email protected]> wrote:
>
> >> Yeah that helped, my lab and scientist now looks like this:
>
> >> /------------------------------- code
>
> >> trait BaseSourceTrait[ T <:BaseSourceTrait[T] ] extends
> >> LongKeyedMapper[T] {
>
> >>         self: T =>
>
> >>         override def primaryKeyField = id
> >>         object id extends MappedLongIndex(this)
>
> >>         object name extends MappedPoliteString(this, 256)
> >>         object sourceType extends MappedEnum(this,SourceTypes)
>
> >>         object SourceTypes extends Enumeration {
> >>                 val Scientist = Value("Scientist")
> >>                 val     Lab = Value("Lab")
> >>         }
>
> >> }
>
> >> class Scientist extends BaseSourceTrait[Scientist] {
>
> >>   def getSingleton = Scientist
>
> >>   object birth extends MappedInt(this)
> >>   object death extends MappedInt(this)
> >>   object nationality extends MappedPoliteString(this, 128)
>
> >> }
>
> >> object Scientist extends Scientist with LongKeyedMetaMapper[Scientist]
> >> {
> >>         override def dbTableName = "Source"
>
> >> }
>
> >> class Lab extends BaseSourceTrait[Lab] {
>
> >>   def getSingleton = Lab
>
> >>   object institution extends MappedLongForeignKey(this, Institution)
>
> >> }
>
> >> object Lab extends Lab with LongKeyedMetaMapper[Lab] {
> >>         override def dbTableName = "Source"
>
> >> }
>
> >> /------------------------------- code ends
>
> >> My only problem now is that I can't figure out how to implement the
> >> following:
>
> >> A Discovery (a mapped class) needs to have a foreign key to the source
> >> that made the discovery, this could be either a lab or a scientist, so
> >> normally i would have a field with a reference to the super-class of
> >> both Scientist and Lab - However, I don't have a super-class, I just
> >> have a trait :)
>
> >> I would like to be able to write something like this:
>
> >> /------------------------------- code starts again
>
> >> class Discovery extends LongKeyedMapper[Discovery] with IdPK {
>
> >>         def getSingleton = Discovery
>
> >>         // primatives
> >>         object description extends MappedDateTime(this)
> >>         object year extends MappedInt(this)
> >>         object reference extends MappedPoliteString(this, 128)
>
> >>         // relationships
> >>         object source extends MappedLongForeignKey(this, BaseSourceTrait) 
> >> //
> >> <-- this is what i want.
>
> >> }
>
> >> object Discovery extends Discovery with LongKeyedMetaMapper[Discovery]
>
> >> /------------------------------- code ends
>
> >> As always I truely appreciate the help you guys are giving me :)
>
> >> Thanks,
> >> Mads Hartmann Jensen
>
> >> On Feb 4, 9:56 pm, David Pollak <[email protected]> wrote:
>
> >>> Please take a look at the MegaProtoUser and MegaMetaProtoUser code for
> >>> examples of how to create traits that can be mixed into classes.
>
> >>> Does that help?
>
> >>> On Thu, Feb 4, 2010 at 9:58 AM, Mads Hartmann Jensen 
> >>> <[email protected]>wrote:
>
> >>>> hello Jeppe,
>
> >>>> In my project I've got the following three models: A discovery, a 
> >>>> Scientist
> >>>> and a lab. The Discovery has been invented by someone, this is either a
> >>>> single scientist or sometimes a lab - This is easily done through
> >>>> inheritance (would create a superclass named source) but I'm not sure 
> >>>> how to
> >>>> do this so it maps nicely to the database.
>
> >>>> Scientist and Lab only share one attribute so what I'm most interested in
> >>>> is to be able express that a Discovery has s source that can be either a 
> >>>> lab
> >>>> or scientist :)
>
> >>>> Hope this explains my problem more clearly, thanks for the help
>
> >>>> Mads Hartmann
>
> >>>> Sent from my iPhone
>
> >>>> On 04/02/2010, at 18.17, Jeppe Nejsum Madsen <[email protected]> wrote:
>
> >>>>  Mads Hartmann <[email protected]> writes:
>
> >>>>>  Hello Everyone,
>
> >>>>>> I'm currently trying to figure out how to map objects with inheritance
> >>>>>> using the Mapper framework. I've got a Lab and a Scientist who inherit
> >>>>>> from Source.
>
> >>>>>> As I understand there's no direct way to do inheritance using the
> >>>>>> Mapper framework so I'm trying to figure out how to implement 'Single
> >>>>>> Table Inheritance'.
>
> >>>>>> Right now I'm trying to create a single trait (Source) for the values
> >>>>>> that they share called BaseSource and my idea is to mix it in both Lab
> >>>>>> and Scientist. I would then define the table name of both scientist
> >>>>>> and lab to be the same - I think this would work but what I'm not sure
> >>>>>> of is the following:
>
> >>>>>> - If both Scientist and Lab mixes in the IdPK trait and use the same
> >>>>>> table, will the id still be unique?
> >>>>>> - A Discovery has a source, how do i create MappedLongForeignKey to
> >>>>>> the table they share (lab, scientist)?
>
> >>>>>> I hope you'll be able to help me out :)
>
> >>>>> I can't say I follow the above :-) Do you want to share tables, code or
> >>>>> both? Maybe list the table structure and explain how you would like to
> >>>>> map it....
>
> >>>>> /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]<liftweb%[email protected]
> >>>>>  >
> >>>>> .
> >>>>> For more options, visit this group at
> >>>>>http://groups.google.com/group/liftweb?hl=en.
>
> >>>> --
> >>>> 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 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].
> >> For more options, visit this group 
> >> athttp://groups.google.com/group/liftweb?hl=en.
>
> > --
> > 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 
> > athttp://groups.google.com/group/liftweb?hl=en.
>
> --
> 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 
> athttp://groups.google.com/group/liftweb?hl=en.

-- 
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.

Reply via email to