乱七八糟学习笔记之jpa标签

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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值