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/e2317e5dbaad4a65 > > 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 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]. 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]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
