3
比方说,我有一个名称列(String
)和年龄列(Int
)的RDBMS表persons
。如果我们不需要服务器端的ID,这可以完全适合case class Person(name: String, age: String)
。问题在于,在某些情况下,我们拥有id,就像我们从DB(后端)获取人员时那样,但有时我们没有,就像我们在form(前端)创建人员时一样。在客户端和服务器之间共享的代码中表示DB实体的习惯方式
三种最简单可行的方法我看到:
- 创建不同类型的
FrontendPerson
和BackendPerson
与转换。非常样板,没有直接连接 - 添加包装
DbItem(id: Long, person: Person)
- 添加
id: Option[Long]
。非常样板,在大多数情况下,我们知道id
可用,因此Option#get
将传播。
我想知道是否有更好的(可能更通用,没有形状)或集成到doobie的方式。
有一个视频在scala中讨论了这个确切的问题:https://www.youtube.com/watch?v = 7xSfLPD6tiQ – triggerNZ