2

Scala と ScalaQuery で最初のプロジェクトを開始しました。これまでのところ、どちらもうまく機能しているように見えますが、私は時々少し問題を抱えています.

タプルの代わりにクラス オブジェクト (この場合は約 12 列のドメイン ケース クラス) を取得する方法を説明してください。以下のクエリはタプルを返しますが、問題は、クエリの各列名を提供せずに、テーブルの約 9 列 (またはすべての列) が必要なことです。ドメイン クラスには既に * がすべての列を定義しているのに、返されるタプル内の位置を把握する代わりに Domain.name、Domain.level を使用できるように、以下のクエリが Domain オブジェクトの代わりにタプルを返すのはなぜでしょうか。

val ext_id = 'ns1.amazon.com'
val name = "www.getcrazy.com"
val validDomains = for {p <- Domain where { p => (p.ext_id is ext_id) && (p.domain_name is name) && (p.is_deleted is false) && (p.result_code is "1000")}} yield *

for(pp <- validDomains) {
            logger.debug("State is " + pp._6 + " for domain ID - " + pp._1)
}

なにか提案を?

ありがとう、パワン

4

1 に答える 1

6

を拡張 するオブジェクトを作成しますorg.scalaquery.ql.basic.BasicTable。例えば、

case class Community (id:String, name:String, latitude:Double, longitude:Double)
object CommunityTable extends Table[Community]("Communities") {
  def id = column[String]("ID", O PrimaryKey, O NotNull, O DBType "uniqueidentifier")
  def name = column[String]("Name", O NotNull, O DBType "varchar(255)")
  def longitude = column[Double]("Longitude")
  def latitude = column[Double]("Latitude")
  def * = id ~ name ~ longitude ~ latitude <> (Community, Community.unapply _)
}

これにより、単純にクエリを実行して、バックCommunityTableを取得できます。List[Community]

val c: List[Community] = CommunityTable.where(c => (c.name startsWith term)).list
于 2011-10-21T16:57:21.550 に答える