Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 适用于DB2、Oracle和MSSql的Hibernate序列生成策略是什么_Java_Sql_Oracle_Hibernate_Db2 - Fatal编程技术网

Java 适用于DB2、Oracle和MSSql的Hibernate序列生成策略是什么

Java 适用于DB2、Oracle和MSSql的Hibernate序列生成策略是什么,java,sql,oracle,hibernate,db2,Java,Sql,Oracle,Hibernate,Db2,我正在开发一个需要在DB2、Oracle或MySQL上运行的企业web应用程序。我面临的主要问题是选择一个hibernate序列ID生成,它将与所有三个DBs一起工作。到目前为止,我的解决方案有三个不同的DBs项目,我希望将这三个项目合并为一个统一的项目,以便于维护。 这三个数据库将采用什么样的ID生成策略?您可以使用@TableGenerator 此注释定义了主键生成器,当为GeneratedValue注释指定生成器元素时,可以通过名称引用该主键生成器。可以在实体类或主键字段或属性上指定表生成

我正在开发一个需要在DB2、Oracle或MySQL上运行的企业web应用程序。我面临的主要问题是选择一个hibernate序列ID生成,它将与所有三个DBs一起工作。到目前为止,我的解决方案有三个不同的DBs项目,我希望将这三个项目合并为一个统一的项目,以便于维护。
这三个数据库将采用什么样的ID生成策略?

您可以使用
@TableGenerator

此注释定义了主键生成器,当为GeneratedValue注释指定生成器元素时,可以通过名称引用该主键生成器。可以在实体类或主键字段或属性上指定表生成器。生成器名称的范围是持久化单元的全局范围(跨所有生成器类型)。

有关详细信息


文档中的示例:

@Entity public class Employee {
        ...
        @TableGenerator(
            name="empGen", 
            table="ID_GEN", 
            pkColumnName="GEN_KEY", 
            valueColumnName="GEN_VALUE", 
            pkColumnValue="EMP_ID", 
            allocationSize=1)
        @Id
        @GeneratedValue(strategy=TABLE, generator="empGen")
        public int id;
        ...
    }

嘿那么它实际上是如何工作的呢?我们是否将钥匙存放在每个发电机对应的位置?