• 使用专门的表作为OID的生成器


     1 @Entity
     2 @Table(name = "ABC_CONFIGURE_DTL")
     3 public class AbcConfigureDtl implements Serializable {
     4 
     5     //   configure_dtl_id     number                          not null,
     6     /**
     7      * 主键
     8      */
     9     @Id
    10     @GeneratedValue(strategy = GenerationType.TABLE, generator = "ABC_CONFIGURE_DTL_CONFIGURE_DTL_ID")
    11     @TableGenerator(name = "ABC_CONFIGURE_DTL_CONFIGURE_DTL_ID",table = "TB_GENERATOR",pkColumnName = "GEN_NAME",
    12      valueColumnName = "GEN_VALUE",pkColumnValue = "ABC_CONFIGURE_DTL_CONFIGURE_DTL_ID",allocationSize =1)
    13     private long configure_dtl_id;
    14 
    15     //   configure_id         number,
    16 
    17 .....
    18 }

    OID生成器对应的数据库表

     

    说明:

      类定义文件中的注解是JPA注解,可以参考http://www.cnblogs.com/kentyshang/archive/2008/01/07/1029142.html

    使用注解的方式,可以大大减少我们定义映射配置文件的复杂程度。

    下面简单说下注解的大概意思:

    @Entity 指定了当前类是待映射类

    @Table 指定了映射类对应的数据库表

    @Id  指定了OID

    @GeneratedValue中,strategy指定采用数据库表的形式生成OID,generator指定生成器的名称。

    @TableGenerator 定义了一个表形式的OID生成器,name是名称(:@GeneratedValue中的generator就是引用这个名字,两者创建了关联),其他的部分是表的定义。

      一个TableGenerator 可以提供N个待映射对象的OID,甚至可以整个系统使用一个TableGenerator 统一作为OID的生成器。

      表中的GEN_VALUE就是生成出来的OID。

  • 相关阅读:
    Shell需注意的语法问题
    iconv编码转换
    使用cocos创建的项目,如何进行源码调试?
    git切换到远程分支
    在 Git 中 Checkout 历史版本
    JAVA keytool 使用详解
    JAVA调用 keytool 生成keystore 和 cer 证书
    写出好的 commit message
    JAVA
    面试中关于Java你所需知道的的一切
  • 原文地址:https://www.cnblogs.com/mabaishui/p/1788386.html
Copyright © 2020-2023  润新知