JPA 的基本注解

Posted 匿名道友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA 的基本注解相关的知识,希望对你有一定的参考价值。

1.首先说说注解的含义

@Entity

  说明当前类是一个实体。

@Table(name="XXX")

  设置对应表的表名。如果不写,则表名=类名。

@Column(name="XXX",length=xxx,nullable=(false/true),unique=(true/false))

  设置对应表的字段名,注解应该写在属性的get方法上。如果不写@Column,则默认是:表里的字段名和属性名相同。


@GeneratedValue(strategy=GenerationType.AUTO)
@Id

  对应数据表的主键,并设置主键的生成策略,我这里是用AUTO方式,还有其他方式,这里不一 一举例。

@Basic

  把没有加@Column的属性自动的注解,并且设置成字段名=属性名。并且字段的长度也是默认最长的(例如:int =11,varchar=255)。

@Transient

  如果实体类里有一个getxxx()的工具类,不需要映射为实例时,就需要加@Transient,否则ORM框架就默认其注解为@Basic。

@Temporal(TemporalType.xxx)

  指定Date对象的精确度,比如

    @Temporal(TemporalType.TIMESTAMP)设置精确到秒

    @Temporal(TemporalType.DATE)设置精确到天

2.下面看看实际代码:

 1 @Table(name="CUSTOMER")
 2 @Entity
 3 public class Customer {
 4 private Integer id;
 5 private String lastName;
 6 private String email;
 7 private int age;
 8 
 9 private Date createdTime;
10 private Date birth;
11 
12 //创建时间设置精确到秒
13 @Temporal(TemporalType.TIMESTAMP)
14 public Date getCreatedTime() {
15     return createdTime;
16 }
17 
18 public void setCreatedTime(Date createdTime) {
19     this.createdTime = createdTime;
20 }
21 //生日设置精确到天
22 @Temporal(TemporalType.DATE)
23 public Date getBirth() {
24     return birth;
25 }
26 public void setBirth(Date birth) {
27     this.birth = birth;
28 }
29 @Column(name="id")
30 @GeneratedValue(strategy=GenerationType.AUTO)
31 @Id
32 public Integer getId() {
33     return id;
34 }
35 public void setId(Integer id) {
36     this.id = id;
37 }
38 @Column(name="Last_Name")
39 public String getLastName() {
40     return lastName;
41 }
42 public void setLastName(String lastName) {
43     this.lastName = lastName;
44 }
45 //默认为@Basic
46 public String getEmail() {
47     return email;
48 }
49 public void setEmail(String email) {
50     this.email = email;
51 }
52 //默认为@Basic
53 public int getAge() {
54     return age;
55 }
56 public void setAge(int age) {
57     this.age = age;
58 }
59 
60 //工具类,不需要映射为数据表的一列
61 @Transient
62 public String getInfo() {
63     return "lastName:"+lastName+",email:"+email;
64 }
65 }

 

  

  

  

以上是关于JPA 的基本注解的主要内容,如果未能解决你的问题,请参考以下文章

学习Spring-Data-Jpa---JPA基本注解

JPA-基本注解

JPA 的基本注解

JPA之常用 基本注解

JPA相关注解

springboot jpa自定义查询