2.JPA实体-基本注解介绍

开篇广告
自己开发的淘宝领券网站:q.hayye.cn(手机打开)
要说特色,应该没有,硬要说的话就是没广告、没推送,简单好用。
前端开源地址:https://gitee.com/hayye/tbq
后端不开源……
QQ群
欢迎大家加群讨论技术,不定时也会有淘宝神券发放!


正文开始

JPA实体类

其实就是一个简单的Java实体类,只是在属性上多了几条注解。
下面列出一些常用的注解:

@Entity

标注在类上方,表示该类为被JPA管理的实体类,将被映射到指定的数据库表。

@Table

标注在类上方,表名该类对应的数据库表,可增加(name=“xxx”)属性表示具体对应的表名。

@Id

可配合@GeneratedValue(strategy=GenerationType.xxx)
设置主键自增类型,自增注解strategy属性提供四种值(即xxx可选值):

AUTO: 主键由程序控制,是默认选项,不设置即此项。
IDENTITY:主键由数据库自动生成,即采用数据库ID自增长的方式,Oracle不支持这种方式。
SEQUENCE:通过数据库的序列产生主键,通过@SequenceGenerator 注解指定序列名,mysql不支持这种方式。
TABLE:通过特定的数据库表产生主键,使用该策略可以使应用更易于数据库移植。

@Transient

不将此字段映射到数据库

@Column

注解在属性上,对应数据库中表的列,有以下一些配置属性可选

String name:默认与实体中属性名一样,可通过(name=xxx)自定义;
boolean unique:是否唯一默认false;
boolean nullable:是否可为空;默认true;
boolean insertable:在insert时是否包含此字段,默认true;
boolean updateable:在update时是否包含此字段,默认true;
String columnDefinition:在数据库中的实际类型;
int length:长度,默认255;

@Temporal

设置Date类型的属性对应的字段

一个例子
@Entiy
@Table("person")
public void Person(){
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    
    @Column(name="username",unique=true,nullable=false,length=16)
    private String username;
    
    @Column
    private String realname;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值