我有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是私人还是公共?
答案 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 = _
}