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.
