1

我在 a 中定义了两个表

 class Patients(tag: Tag) extends Table[(String, String, Int, String)](tag, "Patientss") {
    def PID = column[String]("Patient Id", O.PrimaryKey)

    def Gender = column[String]("Gender")

    def Age = column[Int]("Age")

    def Ethnicity = column[String]("Ethnicity")

    def * = (PID, Gender, Age, Ethnicity)
  }

  val patientsss = TableQuery[Patients]

  class DrugEffect(tag: Tag) extends Table[(String, String, Double)](tag, "DrugEffectss") {

    def DrugID = column[String]("Drug ID", O.PrimaryKey)

    def PatientID = column[String]("Patient_ID")

    def DrugEffectssss = column[Double]("Drug Effect")

    def * = (DrugID, PatientID, DrugEffectssss)

    def Patient = foreignKey("Patient_FK", PatientID, patientsss)(_.PID)
  }

  val d_effects = TableQuery[DrugEffect]

我也在这个特定的对象/类中填写表格。

我想知道如何在另一个对象中调用填充的表,以便我可以同时访问DrugEffectPatients作为一个类访问,然后对表本身运行查询?

我希望我让自己清楚,我真的不知道我在做什么

我所说的运行查询的意思是这样的:

val q1 = for {
    c <- patientsss if (c.Age === 20 && c.Gender === "F")
    s <- d_effects if (s.DrugEffectssss > 10.0)
  } yield (c.PID, s.DrugID)

但在不同文件中定义的对象中

4

1 回答 1

1

您需要单独的类中的 DB API 和表。您可以执行以下操作:

import tables.Tables

class SeparateClass extends HasDatabaseConfig[JdbcProfile] {
  val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)

  import driver.api._

  def get(id: Long) = {
    db.run(Tables.DrugEffect.d_effects.filter(_.id === id).result)
  }
}
于 2015-06-26T17:13:28.640 回答