zoukankan      html  css  js  c++  java
  • JPA注解

    @GeneratedValue

    为一个实体生成一个唯一标识的主键,JPA要求每一个实体Entity,必须有且只有一个主键,他提供了主键的生成策略。

    @GeneratedValue注解有两个属性:strategy和generator

    其中strategy用于标注主键的生成策略,默认情况下,JPA会自动选择一个适合底层数据库的主键生成策略;

    generator属性的值是一个字符串,默认为"",声明了主键生成器的名称(对应于同名的主键生成器@SequenceGenerator和@TableGenerator)。

    在javax.persistence.GenerationType中定义了以下几种可供选择的策略: 
    –IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式; 
    –AUTO: JPA自动选择合适的策略,是默认选项; 
    –SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
    –TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

    可以在属性上面或者getter上面进行注解 ;注意: 不能一部分注解在属性上,一部分注解在getter上,否则会抛出异常

     @GenericGenerator

    自定义主键生成策略

    就可以用hibernate特有以下用法来实现 ,Java代码  

    @GeneratedValue(generator = "paymentableGenerator")    

    @GenericGenerator(name = "paymentableGenerator", strategy = "assigned")  

    @GenericGenerator的定义: (Java代码

    @Target({PACKAGE, TYPE, METHOD, FIELD})  
    @Retention(RUNTIME)  
    public @interface GenericGenerator {  
     /** 
      * unique generator name 
      */  
     String name();  
     /** 
      * Generator strategy either a predefined Hibernate 
      * strategy or a fully qualified class name. 
      */  
     String strategy();  
     /** 
      * Optional generator parameters 
     * parameters得到strategy指定的具体生成器所用到的参数 */ Parameter[] parameters() default {}; }

      详细介绍参考:http://blog.csdn.net/linan0930/article/details/21108411

  • 相关阅读:
    [InnoSetup]Inno Setup软件打包脚本
    inno setup 执行SQL
    用inno Setup制作web项目安装包
    Inno Setup执行SQL脚本的方法
    delphi的tserversocket控件如何接收16进制数
    Delphi 通信报Asynchronous socket error 10053错误的一个解决方法
    么正矩阵(酉矩阵)
    对称矩阵、Hermite矩阵、正交矩阵、酉矩阵、奇异矩阵、正规矩阵、幂等矩阵
    RSVP协议的基本概念介绍
    计算机顶级会议的历年最佳文章
  • 原文地址:https://www.cnblogs.com/xiaoQ0725/p/8078710.html
Copyright © 2011-2022 走看看