使用Play with Scala和Slick在不同文件上的表之间的一对多关系

时间:2015-10-07 18:51:24

标签: scala playframework slick slick-3.0

我正在尝试绘制音乐专辑之间的关系 - 音乐属于专辑,而一张专辑可能有很多音乐。

根据Slick's docs,这应该是相当简单的......但是,我没有像文档那样在单个文件中使用我的表格,这就是我的问题出现的地方:我不知道我怎么做当我需要映射外键时,从 MusicRepository.scala 正确访问相册表格。

以下是我收到的错误消息:@Override public void onItemSelected(AdapterView parent, View v, int position, long id) { // TODO Auto-generated method stub Log.d("Onitem", "her?"); //Change in below line ParseObject theSelectedObject = (ParseObject) nameList.get(position); Toast.makeText(parent.getContext(), "Valgt " + theSelectedObject.getString("username") + ", " + theSelectedObject.getString("BT_ID"), Toast.LENGTH_LONG).show(); excluded.add("BT_ID"); }

我试过not found: value AlbumRepository但是没有用... ... 它是否也与我的import dal.AlbumRepository 私人有关 - 或者是另一个问题吗?

AlbumRepository.scala

val albums

MusicRepository.scala

package dal

/* Omitted for brevity */

@Singleton
class AlbumRepository @Inject()(dbConfigProvider: DatabaseConfigProvider)
                               (implicit ec: ExecutionContext) {

  private val dbConfig = dbConfigProvider.get[JdbcProfile]

  import dbConfig._
  import driver.api._

  private val albums = TableQuery[Albums]

  /* Omitted for brevity */

  // Albums table
  private class Albums(tag: Tag) extends Table[Album](tag, "albums") {
    def id = column[Long]("id", O.PrimaryKey, O.AutoInc)

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

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

    def * = (id, name, description) <>((Album.apply _).tupled, Album.unapply)
  }

}

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您需要导入dal.AlbumRepository.Albums,是的,您可能需要将其公开。 否则你也可以跳过整个外键的东西。没有它,效果很好。