我正在使用slick 2.x 的 codegen功能从数据库模式生成 Scala 模型。但是,是否可以遍历外键约束来生成相关模型,例如,如果我有这个模式
CREATE TABLE people(id INT PRIMARY KEY AUTO INCREMENT, name VARCHAR(31));
CREATE TABLE dogs(name VARCHAR(31), ownerId INT FOREIGN KEY people(id));
我从 slick 获得以下模型:
case class PeopleRow(id: Int, name: String)
case class DogsRow(name: String, ownerId: Int)
但是,我真正想要的是:
case class PeopleRow(id: Int, name: String)
case class DogsRow(name: String, owner: PeopleRow)
甚至更好:
case class PeopleRow(id: Int, name: String) {
def dogs: List[DogsRow] // return items from dogs table that has this.id as ownerId
}
case class DogsRow(name: String, ownerId: People) {
lazy val owner: People // lazy on-demand or, can be a def too
}
反正有没有覆盖光滑的代码生成来做到这一点?