可能不使用ID字段而是另一个列名?在电梯里

时间:2010-06-10 21:47:13

标签: scala lift

我从scala / lift webapp连接到oracle数据库。我已经能够成功地从数据库中提取信息,但我遇到了一个问题。

对于我想访问的每个表,我需要添加一个ID字段,以便该应用程序可以使用特征IdPK。

我可以用什么映射器类或特征来覆盖它?我一直试图找到一个但无法找到它。想象的人并不总是在他们制作的每张桌子上都有一个ID字段,这就叫做ID ...

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

 object dn_rec_id extends MappedInt(this){
 }

这就是我所说的。我想使用dn_rec_id作为我的主键,因为它在桌面上。

由于

1 个答案:

答案 0 :(得分:3)

没理由你必须使用IdPK特性。如果您检查来源,您会看到其定义如下:

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

基本上,它只是创建一个名为id的长索引并使其成为主键。您可以使用ID的其他名称轻松完成此操作。