Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate/JPA混合ID生成策略_Java_Hibernate_Jpa_Id Generation - Fatal编程技术网

Java Hibernate/JPA混合ID生成策略

Java Hibernate/JPA混合ID生成策略,java,hibernate,jpa,id-generation,Java,Hibernate,Jpa,Id Generation,假设我有以下情况:我有5个实体(为了简单起见减少了),其中3个在数据库中几乎没有记录(每个大约15-20条)。剩下的两个实体将拥有大量记录(数千条),并将快速增长 使用默认的Hibernate ID生成策略(AUTO),这意味着所有记录在所有实体中都具有唯一的ID(因为只有一个序列)。我不愿意这样做,因为这意味着ID将快速增长,因为某些表中有大量记录 问题#1:我是否可以重新定义两个大实体的ID策略,以便每个实体都有自己的序列,并将其他实体保持在自动?混合搭配ID策略是否被认为是好的/坏的做法?

假设我有以下情况:我有5个实体(为了简单起见减少了),其中3个在数据库中几乎没有记录(每个大约15-20条)。剩下的两个实体将拥有大量记录(数千条),并将快速增长

使用默认的Hibernate ID生成策略(
AUTO
),这意味着所有记录在所有实体中都具有唯一的ID(因为只有一个序列)。我不愿意这样做,因为这意味着ID将快速增长,因为某些表中有大量记录

问题#1:我是否可以重新定义两个大实体的ID策略,以便每个实体都有自己的序列,并将其他实体保持在
自动
?混合搭配ID策略是否被认为是好的/坏的做法?我为什么应该/不应该这样做

问题#2:考虑到Oracle 10g数据库,在ID生成策略方面有哪些优点和缺点?例如;使用
表格
而不是
序列
是否更好


提前谢谢使用一个序列。
  • 由DB生成的id非常可靠
  • 您没有使代码更容易反译的特殊情况

  • 在Oracle DBMS中,我认为您应该考虑为所有的实体< /P>使用一个序列。
    • 由DB生成的id非常可靠
    • 您没有使代码更容易反译的特殊情况
      • 问题1:根本没有问题。每个实体类都可以有自己的ID策略

        问题#2:序列的存在主要是为了生成代理密钥。所以,使用它时不要害怕:-)问题1:根本没有问题。每个实体类都可以有自己的ID策略

        问题#2:序列的存在主要是为了生成代理密钥。所以,毫无恐惧地使用它:-)