如果我有一个像这样定义的实体存储在App引擎的Big Table中:
@Entity
@Table(name = "users")
public class User implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;
private String username;
private String password;
private String encryptedPassword;
private String creationDate;
private String modificationDate;
private Boolean validated;
// Code omitted
}
如果我有另一个具有另一个表注释的实体,@Table(name = "profile")
将使每个实体Id彼此独立。例如,有一个User实体,其id为0,Profile实体的id为0.
我的意思是,由于实体存储在“大表”中,因此将为存储的所有实体分配顺序Id。添加这样的注释是否解决了实体具有独立的id's序列的问题?
我想要实现的是每个实体都有自己的Id从0到n开始,每个实体类型都有自己的序列,例如:用户实体将从零开始依次为Long类型,而Profile实体也将以0开头。
答案 0 :(得分:0)
是的,无论您拥有多少实体,自动生成的id或序列始终是独立的,如果您将数据类型设置为bigint,则必须在数据库中手动创建序列但是如果您使用它作为一个bigserial,而不需要在该服务器的db服务器中显式地生成序列。享受.........
答案 1 :(得分:0)
不,所有种类都有自己的ID序列,可能会重叠。您可以使用allocate_ids API来分配唯一ID,但请注意,这仍然不允许您在不知道其类型的情况下查询实体(我认为这是您要执行此操作的原因),因为您必须查询每个ID善待找到包含你身份证的那个。