JPA注解

@Entity

@Entity标注的java类为实体类,将映射到指定的数据库中

@Table

当实体类于映射的数据库表不同名时需要使用@Table标注来说明,常用属性是nama,值为改实体类所对应的的数据库表名

@Id

@Id标注的属性为数据库的主键列,也可标注在该属性的getter方法之前

@GeneratedValue

@GeneratedValue用于标注主键的生成策略,通过strategy属性指定,默认情况下,JPA自动选择一个适合底层数据库的主键生成策略,SqlServer对应identity,MySql对应auto increment

在javax。persistence。GenerationType中定义了一下集中可供选择的策略

  1. IDENTITY:采用数据库ID自增长的方式来自增主键,Oracle不支持这种方式
  2. AUTO:JPA自动选择合适的增长策略,是默认选项;
  3. SEQUENCCE:通过序列产生主键,通过 @SequenceGenerator注解指定序列名,MySql不支持这种方式
  4. TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以是应用更易于数据库移植
    1. @TableGenerator(name="ID_GENERATOR",//该主键生成策略名称,他被引用在@GeneratedValue中设置的generator的值
      			table="jpa_id_generators",//表示表生成策略所用的数据库表名
      			pkColumnName="PK_NAME",//表示在生成策略所用表中该主键生成策略所对应的键值的名称
      			pkColumnValue="CUSTOMER_ID",//表示在生成策略所用表中该生成策略对应的主键
      			valueColumnName="PK_VALUE",//属性的值表示在持久化表中,该主键当前所生成的值,它的值将会随着每次创建累加
                  allocationSize=100)//表示每次主键值增加的大小, 默认值为 50
      	@GeneratedValue(strategy=GenerationType.TABLE,generator="ID_GENERATOR")

@Basic

没有任何标注的getter方法,默认即为@Basic

@Column

标注在属性值上,name指定数据库对应的列明

@Transient

标注在属性上,表明该属性不是数据库对应的字段

@Temporal

java API中并没有定义 Date类型的精度,而在数据库中,表示 Date类型的数据有Date(日期),Time(时间),TimeStamp(日期+时间)三种精度,在进行属性映射的时候可以使用@Temporal来调节Date的精度

@Temporal(TemporalType.TIMESTAMP)

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值