2

私はscala/liftウェブアプリからOracleデータベースに接続しています。希望どおりにデータベースから情報を正常に取得できましたが、問題が1つあります。

アクセスしたいテーブルごとに、アプリがトレイトIdPKで動作するように、IDフィールドを追加する必要があります。

これをオーバーライドするために使用できるマッパークラスまたはトレイトは何ですか?私はそれを見つけようとしましたが、それを見つけることができませんでした。考え抜かれた人々は、彼らが作るすべてのテーブルに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を主キーとして使用したいと思います。

ありがとう

4

1 に答える 1

3

IdPKトレイトを使用する必要がある理由はありません。ソースを確認すると、次のように定義されていることがわかります。

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

つまり、基本的には、という名前の長いインデックスを作成し、idそれを主キーにします。IDの別の名前を使用して、これを自分で簡単に行うことができます。

于 2010-06-11T04:51:05.530 に答える