Möglich, nicht-ID-Feld zu verwenden, aber einen anderen Spaltennamen? Fahrstuhl
Frage
Ich bin auf eine Oracle-Datenbank von einem scala / Lift Webapp verbunden. Ich konnte erfolgreich Informationen aus der Datenbank ziehen, wie ich wollte, aber ein Problem habe.
Für jede Tabelle I zugreifen mag ich bin verpflichtet, ein ID-Feld hinzufügen, so dass der App mit dem Merkmale IdPK funktionieren wird.
Was Mapper-Klasse oder Eigenschaft kann ich diese außer Kraft zu setzen? Ich habe versucht, einen zu finden, aber es nicht gelungen, sie ausfindig zu machen. Figured Menschen haben nicht immer ein ID-Feld auf jedem Tisch sie das ist nur genannt ID ...
machen mußtenclass DN_REC extends LongKeyedMapper[DN_REC] with IdPK {
def getSingleton = DN_REC
object dn_rec_id extends MappedInt(this){
}
Das ist, was ich rede. Ich möchte die dn_rec_id als meine primäre Schlüssel verwenden, wie es auf dem Tisch ist.
Danke
Lösung
Kein Grund, warum Sie die IdPK Eigenschaft verwenden. Wenn Sie Quelle überprüfen, werden Sie sehen, seine wie folgt definiert:
trait IdPK /* extends BaseLongKeyedMapper */ {
self: BaseLongKeyedMapper =>
def primaryKeyField = id
object id extends MappedLongIndex[MapperType](this.asInstanceOf[MapperType])
}
Also im Grunde, es justs schafft einen langen Index mit dem Namen id
und macht es den Primärschlüssel. Sie können dies leicht tun, um sich mit einem anderen Namen für die ID.