尝试使用Squeryl创建OneToMany关系时断言失败

时间:2012-05-10 10:41:02

标签: scala squeryl

我在数据库中有两个类,并希望建立一对多的关系。没什么复杂的。但是,我在squeryl的_splitEquality中得到断言失败(在第576行)。 Squeryl是版本0.9.5

所以我有一个架构

object Tables extends Schema {
val foo = table[Foo]("foo_table")
val bar = table[Bar]("bar_table")

val fooBar = oneToManyRelation(foo,bar).via((f,b) => f.id === bar.foo_fk)
}

foo在哪里

 class Foo (val foo_id: String, val useful_info: String) 
   extends KeyedEntity[String] {
 override def id: String = foo_id
 }

和bar是

class bar (val foo_fk) {
def useful_info = Tables.fooBar.right(this).head.useful_info
}

但是,这在运行时因前面提到的断言失败而失败,特别是: assert(ee.right._fieldMetaData.isIdFieldOfKeyedEntity) 失败

1 个答案:

答案 0 :(得分:1)

我通过在Foo上使用列注释而不是覆盖id来修复它。 所以foo成了

class Foo (
@Column("foo_id")
val id: String, 
val useful_info: String) 
  extends KeyedEntity[String] {
}

我不完全确定为什么会这样,但我很生气它确实如此。