Java 可序列化类X不声明long类型的静态最终SerialVersionId字段

Java 可序列化类X不声明long类型的静态最终SerialVersionId字段,java,jakarta-ee,serialization,model,playframework,Java,Jakarta Ee,Serialization,Model,Playframework,我正在编写一个Play框架实体,它扩展自Play.db.ebean.Model,并从eclipse获得以下警告: The serializable class user does not declare a static final serialVersionUID field of type long 谁能给我解释一下吗?play.db.ebean.Model()没有实现serializable,我的用户类也没有,因此我不理解eclipse为什么会抛出警告 以下是我的代码的重要部分: pac

我正在编写一个Play框架实体,它扩展自
Play.db.ebean.Model
,并从eclipse获得以下警告:

The serializable class user does not declare a static final serialVersionUID field of type long
谁能给我解释一下吗?play.db.ebean.Model()没有实现serializable,我的用户类也没有,因此我不理解eclipse为什么会抛出警告

以下是我的代码的重要部分:

package models;

import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;

import javax.persistence.Entity;
import javax.persistence.Id;

import crypto.PasswordHash;
import play.Logger;
import play.db.ebean.Model;
import play.data.validation.*;

@Entity
public class User extends Model {

    @Id
    @Constraints.Email
    private String email;
    @Constraints.Required
    private String name;
    @Constraints.Required
    @Constraints.MinLength(5)
    private String password;
    @Constraints.Min(0)
    private Integer rating;

    ...

}

尽管您链接的javadoc中没有这样说,
play.db.ebean.Model
实现了
com.avaje.ebean.bean.EntityBean
(请参阅),它反过来扩展了
java.io.Serializable
(请参阅)。因此,Eclipse是正确的。

猜测这一需求是通过
@Entity
实现的(因为Java EE 5实体必须是可序列化的)。可能的重复不是真正的重复,我不想理解为什么要添加变量,而是为什么要实现可序列化,或者为什么要添加变量,当我没有实现接口时。