См. Сопутствующий объект в scala:
class Example(val string:String) {
private var extraData = ""
override def toString = string+extraData
}
object Example {
def apply(base:String, extras:String) = {
val s = new Example(base)
s.extraData = extras
s
}
def apply(base:String) = new Example(base)
}
println(Example("hello"," world"))
println(Example("hello"))
Там связаны с классом с тем же именем.
Для персистентных объектов Scala использовать те же вещи, что и Java - jpa hibernate openlink
См. Использование JPA с Scala