java - Objectify - 我应该创建一个实体父类(super class)吗?

标签 java google-app-engine objectify

有什么理由为什么我的所有实体不应该是一个通用 ModelEntity 对象的子类吗?

@Entity
public class ModelEntity {
    @Id Long id;
}

@Subclass
public class User extends ModelEntity {
    @Index
    String username;
}

优点很明显:所有实体都有通用的代码(如 id、date、getKey) 你能想到缺点吗?

最佳答案

拥有一个公共(public)基类可能会有所帮助,但您几乎肯定不希望使其成为多态实体层次结构的一部分。不要为此目的使用@Subclass;你不需要它:

public class ModelEntity {
    @Id Long id;
}

@Entity
public class User extends ModelEntity {
    @Index
    String username;
}

关于java - Objectify - 我应该创建一个实体父类(super class)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854988/

相关文章:

Java Spring 内联文本编辑器

java - CM API - Clearcase 资源代理无法解析

java - 在谷歌应用程序引擎上保存转换后的图像

java - 如何从服务器端(Google App Engine、Cloud Endpoints)将信息发送到我的客户端?

google-app-engine - IAP 签名 header 和 AppEngine 标准 Python 3.7 运行时

java - 使用 Cloud Endpoints 在一次调用中保存引用的对象(通过 Ref)

reflection - Guice 对象上的类层次结构问题

google-app-engine - 为什么要对象化而不是 JDO?

java - 使用莱布尼茨级数计算 pi

java - 将 Python 项目重写为 Java——值得吗?