Можно не использовать поле идентификатора, но имя другого столбца?в лифте - PullRequest
2 голосов
/ 11 июня 2010

Я подключен к базе данных оракула из веб-приложения scala / lift.Мне удалось успешно извлечь информацию из базы данных, как я хотел, но у меня возникла одна проблема.

Для каждой таблицы, к которой я хочу получить доступ, мне необходимо добавить поле идентификатора, чтобы приложение работало с этой чертойIdPK.

Какой класс карт или черту я могу использовать, чтобы переопределить это?Я пытался найти один, но не смог найти его.Представленные люди не всегда имели поле идентификатора на каждой создаваемой ими таблице, которая называется просто идентификатором ...

class DN_REC extends LongKeyedMapper[DN_REC] with IdPK { 
 def getSingleton = DN_REC 

 object dn_rec_id extends MappedInt(this){
 }

Это то, о чем я говорю.Я хотел бы использовать dn_rec_id в качестве моего первичного ключа, как он находится на столе.

Спасибо

1 Ответ

3 голосов
/ 11 июня 2010

Нет причин, по которым вы должны использовать черту IdPK. Если вы проверите источник, вы увидите, что он определен следующим образом:

trait IdPK /* extends BaseLongKeyedMapper */ {  
  self: BaseLongKeyedMapper =>  
  def primaryKeyField = id  
  object id extends MappedLongIndex[MapperType](this.asInstanceOf[MapperType])
}  

Таким образом, он создает длинный индекс с именем id и делает его первичным ключом. Вы можете легко сделать это самостоятельно с другим именем для идентификатора.

...