oneToManyRelation с CompositeKey
Я пытаюсь создать базу данных с помощью squeryl. Эта БД нуждается в отображении между 2 несвязанными таблицами. Моя проблема в том, что одна из несвязанных таблиц имеет CompositeKey2 как PrimaryKey.
Когда я пытаюсь создать свою схему, она всегда выдает исключение. Я встречал много исключений. Вот некоторые сведения о том, что я пытаюсь сделать:
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:
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: утверждение не удалось
Может ли это поведение быть связано с этим билетом?
Есть ли известная работа вокруг?