我很新的斯卡拉。我試圖創建一種動態存儲庫。我如何閱讀簡單案例類的屬性?斯卡拉動態庫
trait Repository[T <:MetaEntity] {
persist(entity:T) : Boolean {
// TO BE IMPLEMENTED
// Pseudo code:
for (attribute <- getAttributes()) {
// Flatten properies to one string...
// Primitives can be converted with attribute.value.toString ?
// Type: attribute.type ?
// Object references should be coverted to object.id.toString ?
}
}
}
abstarct class MetaEntity {}
case class SimpleEntity(id: Int, name: String, version: Int) extends MetaEntity {
}
case class ComplexEntity(id: Int, name: String, simpleChild: SimpleEntity) extends MetaEntity{}
object ComplexEntityRepository extends Repository[ComplexEntity] {}
object SimpleEntityRepository extends Repository[SimpleEntity] {}
謝謝您的回答!似乎是直接的方式。是否有可能創建類似這樣的:class MyEntity extends Entity {object name extends NameField(owner = this)}(我在網上看到過類似的代碼,但不知道它是如何工作的)? – Alebon
我已更新我的示例以顯示這可如何用於虛擬字段「名稱」。 –
我不知道你的用例。可能你應該簡單地使用普通類並堅持XML或JSON。網上有一些很好的文章。在這裏解釋會太長。 –