如何在scala中实现Serializable接口?

时间:2011-07-01 18:13:45

标签: 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.io.Serializable,但这在scala中不起作用。上面声明的foos是私人还是公共?

4 个答案:

答案 0 :(得分:4)

How do I use a @serializable scala object?

除非另有说明,

foos是公开的

答案 1 :(得分:2)

答案 2 :(得分:2)

您可以在Scala类上添加序列化注释(例如,在JPA实体中):

  

因为Serializable是一个特征,你可以把它混合成一个类,即使是   你的班级已经扩展了另一个班级:

@SerialVersionUID(114L)
class Employee extends Person with Serializable ...

在此链接中查看更多详细信息: https://www.safaribooksonline.com/library/view/scala-cookbook/9781449340292/ch12s08.html

答案 3 :(得分:0)

我在Scala中使用序列化属性写入的实体(JPA)类的示例:

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 = _

}