我正在尝试使用squeryl创建数据库。此DB需要两个不相关的表之间的映射。我的问题是其中一个不相关的表有一个CompositeKey2作为PrimaryKey。
当我尝试创建我的Schema时,它总是抛出异常。我遇到过很多例外情况。以下是我想要做的一些信息:
class Table1(val foo: Long,
val bar: String
) extends KeyedEntity[CompositeKey2[Long, String]] {
def id = compositeKey(foo, bar)
}
class Table2(val data: Array[Byte]) extends KeyedEntity[Long] {
val id = 0L
}
class Table1ToTable2Mapping(val table1Foo: Long,
val table1Bar: String,
val table2Id: Long
) extends KeyedEntity[CompositeKey3[Long, String, Long]] {
def id = compositeKey(table1Foo, table1Bar, table2Id)
}
我尝试过的每个Schema声明的例外:
//Schema:
oneToManyRelation(table1, table1ToTable2Mapping).via((t1, t1Tot2) => t1.id.a2 === t1Tot2.table1Bar)
引起:java.lang.ClassCastException:
org.squeryl.PrimitiveTypeMode $$ anon $ 1无法转换为
org.squeryl.dsl.ast.SelectElementReference
//Schema:
oneToManyRelation(table1, table1ToTable2Mapping).via((t1, t1Tot2) => t1.bar === t1Tot2.table1Bar)
java.lang.AssertionError:断言失败
这种行为可能与THIS票证有关吗? 有没有已知的工作?