scala - SORM:我如何声明外键?

标签 scala sorm

我对 SORM 很感兴趣,但是当我尝试使用它时遇到了问题。假设我有两个实体:

case class User(login: String, firstName: String, lastName: String)
case class UserSite(userId: Int, name: String, url: String)

如何声明外键关系 UserSite.userId -> User.id?我看到类 ForeignKey,但没有任何使用它的例子。

谢谢你。

最佳答案

一个展示 SORM 力量的绝佳机会。

Features 中所示SORM 的,它从 中抽象出来。全部 关系概念。这包括外键。

外键抽象是通过对您想用外键引用的这些实体的自然直接引用来提供的。所以而不是userId指向idUser ,你应该指向 User本身与 user属性(property):

case class User(login: String, firstName: String, lastName: String)
case class UserSite(user: User, name: String, url: String)

在引擎盖下,这将完全转化为您希望使用外键实现的目标。但问题是你不必关心它。

旁注。使用 SORM 时,您应该按照您希望在 Scala 中使用它的方式来设计您的模型,几乎没有任何限制,并且您绝对应该抛开您在设计模型时习惯的所有关系概念。这就是 SORM 的方式。

关于文档和库结构。该方法非常简单:如果没有记录,则不打算将其用作公共(public) API 的一部分。此外,对于 SORM 的当前 (v. 0.3.x ) 结构,公共(public) API 的所有组件都驻留在 sorm._ 中。包,所以另一条规则是,如果它不存在,则它不适用于公共(public) API。

关于scala - SORM:我如何声明外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629324/

相关文章:

scala - Intellij CE 2018.2 + docker 容器中的 SBT : Remote debug breakpoints not working

scala - 如何从 Windows 工作站向我的私有(private) Artifactory 服务器提供 SBT 凭据?

scala - 将 Scala 的 Int 数组转换为 Java 的 Integer 数组

database - 如果使用 sorm 如何处理架构更改

sorm - 如何在Sorm中添加自定义值类型?

xml - 我可以使用 Scala 的内置 xml 处理程序忽略无效的 XML 字符吗?

scala - 使用 Akka HTTP 和 circe 处理可空字段的 PATCH 请求

scala - 如何在 Play 框架中使用 SORM 框架?

scala - 如何在 PlayFramework (scala) 中启动 TCP 服务器

mysql - 设置过程中出现异常