You need to set the mapper id field as editable.

Here is what I had to do to use a MappedStringIndex as a primary key
that I can set manually:
 /* MAC address as primary key */
 def primaryKeyField = mac
 object mac extends MappedStringIndex(this, 17) with IndexedField
[String] {
        override def dbDisplay_? = true
        override lazy val defaultValue = randomString(maxLen)
        /* allow user-defined primary key */
        override def writePermission_? = true
        override def dbAutogenerated_? = false
        private var myDirty = false
        override def dirty_? = myDirty
        override def dirty_?(b : Boolean) = { myDirty = b; super.dirty_?(b) }
        override def fieldCreatorString(dbType: DriverType, colName: String):
String = colName+" CHAR("+maxLen+") NOT NULL "
 }

Peter

On Aug 24, 5:30 pm, Naftoli Gugenheim <[email protected]> wrote:
> I'm trying to import data from a non-mapper-based database to one that is. 
> I'm reading data with DB.exec and trying to save it using Mapper, but it's 
> not getting saved. I'm guessing that since I'm setting the id (in runSafe) it 
> thinks it needs to do an update, not an insert.  Is there a workaround? Also, 
> doesn't this scenario break the logic of MetaMapper.saved_?() ? Wouldn't it 
> make more sense to have a saved flag that is cleared by default and set when 
> it's created as a result of a find, and after it's saved?
--~--~---------~--~----~------------~-------~--~----~
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