2

これは、play2 のビルトインの zentasks のサンプル コードです。

object Project {

  // -- Parsers

  /**
   * Parse a Project from a ResultSet
   */
  val simple = {
    get[Pk[Long]]("project.id") ~
    get[String]("project.folder") ~
    get[String]("project.name") map {
      case id~folder~name => Project(id, folder, name)
    }
  }
}

フィールド キーに注意してください: project.idproject.folderproject.name

そのproject部分はどういう意味ですか?それはどこから来たのですか?

クエリ メソッドを見てください。

  def findById(id: Long): Option[Project] = {
    DB.withConnection { implicit connection =>
      SQL("select * from project where id = {id}").on(
        'id -> id
      ).as(Project.simple.singleOpt)
    }
  }

SQL は ですselect * from project ...。結果は次のようになります。

    id    |    folder    |   name

いいえ:

    project.id    |    project.folder    |    project.name

キーを直接project.???ではなくとして指定する必要があるのはなぜですか?field name

play2 はどのようにパーツを使用しproject.ますか?

4

2 に答える 2

0

hereで利用可能なコードに従って、Anorm パーサーは提供された文字列を使用して、指定された列を取得します。

いくつかのメタデータを取得するため、フィールド (テーブル + 名前) の全範囲が機能する必要があります。

于 2012-02-09T15:10:02.263 に答える
0

私見は単なるDBエイリアスです。

select id, folder, name from project

と同じです

select project.id, project.folder, project.name from project

あるいは

select p.id, p.folder, p.name from project p
于 2012-02-06T13:46:29.030 に答える