我在数据库中有两个类,并希望建立一对多的关系。没什么复杂的。但是,我在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)
失败
答案 0 :(得分:1)
我通过在Foo上使用列注释而不是覆盖id来修复它。 所以foo成了
class Foo (
@Column("foo_id")
val id: String,
val useful_info: String)
extends KeyedEntity[String] {
}
我不完全确定为什么会这样,但我很生气它确实如此。