乱七八糟学习笔记之jpa标签
2017-08-23 14:38
239 查看
JPA生成: @GeneratedValue(strategy=GenerationType.IDENTITY)
JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:主键由程序控制。
hibernate:
@GeneratedValue(generator = "1")
@GenericGenerator(name = "1", strategy = "native")
native:
对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity
uuid:
采用128位的uuid算法生成主键,uuid被编码为一个32位16进制数字的字符串。
assigned:
在插入数据的时候主键由程序处理(很常用),这是 <generator>元素没有指定时的默认生成策略。等同于JPA中的AUTO。
increment:
插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,所以在多个实例运行的时候不能使用这个方法。
注意mysql数据库的自动生成与oracle的不同
项目注解摘录:
@Entity
@Table(name = "t_product_margin_common", catalog = "exadmin", uniqueConstraints = @UniqueConstraint(columnNames = {"PRODUCT_ID", "MODE_TYPE", "TRADE_TYPE", "SERIES_GROUP_ID", "PERIOD_ID" }))
public class TProductMarginCommon.....
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "ARITH_ID", unique = true, nullable = false, precision = 65, scale = 30)
@Column(name
= "PRODUCT_ID", nullable = false, length = 30)
@Entity
@Table(name = "t_arith_params_details", catalog = "exadmin")
联合主键
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "arithId", column = @Column(name = "ARITH_ID", nullable = false, precision = 65, scale = 30)),
@AttributeOverride(name = "arithCode", column = @Column(name = "ARITH_CODE", nullable = false, length = 4)),
@AttributeOverride(name = "paramId", column = @Column(name = "PARAM_ID", nullable = false, length = 50)) })
public TArithParamsDetailsId getId() {}
@Embeddable
public class TArithParamsDetailsId
JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:主键由程序控制。
hibernate:
@GeneratedValue(generator = "1")
@GenericGenerator(name = "1", strategy = "native")
native:
对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity
uuid:
采用128位的uuid算法生成主键,uuid被编码为一个32位16进制数字的字符串。
assigned:
在插入数据的时候主键由程序处理(很常用),这是 <generator>元素没有指定时的默认生成策略。等同于JPA中的AUTO。
increment:
插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,所以在多个实例运行的时候不能使用这个方法。
注意mysql数据库的自动生成与oracle的不同
项目注解摘录:
@Entity
@Table(name = "t_product_margin_common", catalog = "exadmin", uniqueConstraints = @UniqueConstraint(columnNames = {"PRODUCT_ID", "MODE_TYPE", "TRADE_TYPE", "SERIES_GROUP_ID", "PERIOD_ID" }))
public class TProductMarginCommon.....
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "ARITH_ID", unique = true, nullable = false, precision = 65, scale = 30)
@Column(name
= "PRODUCT_ID", nullable = false, length = 30)
@Entity
@Table(name = "t_arith_params_details", catalog = "exadmin")
联合主键
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "arithId", column = @Column(name = "ARITH_ID", nullable = false, precision = 65, scale = 30)),
@AttributeOverride(name = "arithCode", column = @Column(name = "ARITH_CODE", nullable = false, length = 4)),
@AttributeOverride(name = "paramId", column = @Column(name = "PARAM_ID", nullable = false, length = 50)) })
public TArithParamsDetailsId getId() {}
@Embeddable
public class TArithParamsDetailsId
相关文章推荐
- Apache Shiro学习笔记(八)自定义标签
- OAF学习笔记-19-在客制页面做出Tab(标签页)
- HTML5学习笔记(总结提炼版)——001常见的HTML标签
- wpf学习笔记---初识xaml标签语言
- JSP学习笔记(六):自定义标签-JSP2.x
- 【Git学习笔记】将标签push到远程仓库
- HTML&CSS基础学习笔记1.20-语义化标签
- spring表单标签学习笔记
- Android(java)学习笔记129:Tab标签的使用
- 基本STRUTS标签-学习笔记-Logic标签
- JasperReport学习笔记6-JRXML的标签
- html标签学习之笔记(二)
- 重温JSP学习笔记--JSP动作标签
- 重温JSP学习笔记--JSTL标签库
- JSTL标签库学习笔记 七、SQL标签库
- [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)
- HTML5 之Canvas标签学习笔记之二:绘制矩形
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
- JPA学习笔记-二级缓存
- JPA学习笔记(4)——使用Table策略来生成主键