I should add that I believe this is because the field isn't being marked as dirty and so isn't saved. This is in MappedField: def dirty_? = !dbPrimaryKey_? && _dirty_?
How would I overload it in my object mac definition? Thanks, Peter On Jul 21, 12:30 pm, Peter Robinett <[email protected]> wrote: > Thanks Derek, but unfortunately it only works halfway: I am able to > set MAC address of my new Node and save it (returning true) and my > MySQL database row is created, but the mac column is null. > > Peter > > On Jul 21, 7:58 am, Derek Chen-Becker <[email protected]> wrote: > > > I think that this should work, but I haven't tested it: > > > class Node extends KeyedMapper[String, Node] { > > def getSingleton = Node > > /* MAC address as primary key */ > > def primaryKeyField = mac > > object mac extends MappedStringIndex(this, 17) { > > override def writePermission_? = true > > override def dbDisplay_? = true > > } > > > } > > > Note that primaryKey_? is already set to true in MappedStringIndex. > > writePermission_? is set to false by default... > > > Derek > > > On Mon, Jul 20, 2009 at 7:30 PM, Peter Robinett > > <[email protected]>wrote: > > > > Hi all, > > > > I'm using Mapper with MAC addresses as my primary keys: > > > class Node extends KeyedMapper[String, Node] { > > > def getSingleton = Node > > > /* MAC address as primary key */ > > > def primaryKeyField = mac > > > object mac extends MappedStringIndex(this, 17) { > > > override def dbPrimaryKey_? = true > > > override def dbDisplay_? = true > > > } > > > } > > > > Unfortunately, if I try to create a new Node and assign a MAC address, > > > I get an error saying that I don't have permission: > > > scala> Node.create.mac("00:1d:c9:00:04:9f") > > > java.lang.Exception: Do not have permissions to set this field > > > at net.liftweb.mapper.MappedField$class.set(MappedField.scala:425) > > > at net.liftweb.mapper.MappedString.set(MappedString.scala:38) > > > at net.liftweb.mapper.MappedString$$anonfun$apply$6.apply > > > (MappedString.scala:121) > > > at net.liftweb.mapper.MappedString$$anonfun$apply$6.apply > > > (MappedString.scala:121) > > > at net.liftweb.util.Full.f... > > > > How do I go about creating a new Node with the mac address – the > > > primary key – of my choosing? > > > > Thanks, > > > Peter Robinett --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
