1

以下の Lift-Web Mapper モデルから、AssignmentformLink の下のフィールドにアクセスするにはどうすればよいですか?

object TForm extends TForm with LongKeyedMetaMapper[TForm]

class TForm extends LongKeyedMapper[TForm] with IdPK with ManyToMany {
  def getSingleton = TForm

  object label extends MappedString(this, 40)

  object pattern extends MappedString(this, 200)

  object assignments extends MappedManyToMany(
      AssignmentformLink, AssignmentformLink.assignment, AssignmentformLink.form, TForm)

}

object AssignmentformLink extends AssignmentformLink with LongKeyedMetaMapper[AssignmentformLink] {
  override def dbIndexes = Index(form, assignment) :: super.dbIndexes
}

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

  object form extends MappedLongForeignKey(this, TForm)

  object assignment extends MappedLongForeignKey(this, Assignment)

  object order extends MappedInt(this)

  object readonly extends MappedBoolean(this)

  object required extends MappedBoolean(this)

  object visible extends MappedBoolean(this)

}

object Assignment extends Assignment with LongKeyedMetaMapper[Assignment]

class Assignment extends LongKeyedMapper[Assignment] with IdPK with ManyToMany {
  def getSingleton = Assignment

  object id_parent extends MappedLong(this)

  object label extends MappedString(this, 40)

  object order extends MappedInt(this)

  object guard extends MappedString(this, 200)

  object forms extends MappedManyToMany(
      AssignmentformLink, AssignmentformLink.assignment, AssignmentformLink.form, TForm)

}

課題とそれにリンクされたフォームを取得するには、次のようにします。

val assignments = Assignments.find(By(Assignment.id, 123))

assignments match {
  case Full(as) => {
    val forms = as.forms
.....

order, readonly, required...しかし、 の下のフィールドに移動する方法がわかりませんAssignmentformLink

リンクを手動で検索できることに気付きました。AssignmentformLink.find(By(form...),By(assignment...))、しかし、これは非効率的なコードになり、オブジェクトを使用するポイントを本当に逃します。

フォームからリンク テーブルのフィールドに移動できる必要があります。

4

1 に答える 1

0

これが正しいアプローチかどうかはわかりませんがassignments.joins、結合テーブル レコードのリストを返します。

于 2012-10-18T17:31:55.397 に答える