Как реализовать интерфейс Serializable в scala?
У меня есть класс scala, например:
@Entity("users")
class User(@Required val cid: String, val isAdmin: Boolean = false, @Required val dateJoined: Date = new Date() ) {
@Id var id: ObjectId = _
@Reference
val foos = new ArrayList[Foo]
}
Если бы это был класс Java, я бы просто поставил реализует java.Ио.Сериализуемый, но это не работает в scala. Также является ли foos, как указано выше, частным или государственным?
4 ответов
scala 2.9.x также имеет интерфейс с именем Serializable, вы можете расширить или смешать это. прежде чем 2.9.x @serializable-единственный выбор.
Как использовать объект @serializable scala?
foos является публичным, если не отмечено иначе
вы можете добавить сериализованную аннотацию в свой класс Scala (например, в сущности JPA):
поскольку Serializable является признаком, вы можете смешать его в класс, даже если ваш класс уже расширяет другой класс:
@SerialVersionUID(114L)
class Employee extends Person with Serializable ...
Se подробнее по этой ссылке: https://www.safaribooksonline.com/library/view/scala-cookbook/9781449340292/ch12s08.html
пример класса My Entity (JPA), записанного в scala, используя сериализованные свойства:
import javax.persistence._
import scala.beans.BeanProperty
import java.util.Date
@SerialVersionUID(1234110L)
@Entity
@Table(name = "sport_token")
class Token() extends Serializable {
@Id
@SequenceGenerator(name="SPORT_TOKEN_SEQ",catalog="ESPORTES" , sequenceName="SPORT_TOKEN_SEQ", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE , generator="SPORT_TOKEN_SEQ")
@BeanProperty
var id: Int = _
@BeanProperty
@Column(name="token")
var token: String = _
@BeanProperty
@Column(name="active")
var active: Int = _
}