JPA的@[email protected]@[email protected]

JPA是Java Persistence Api的简称,可以将一个正常java实体类映射到数据库。通过对java对象的操作来实现对数据库的操作。

JPA定义了注解来实现这一步骤。

import lombok.Data;

import javax.persistence.*;

@Data
@Entity
@Table(name="user_info")
public class User {
    @Id
    @GeneratedValue
    int id;
    @Column(name = "user_name",nullable = true)
    String name;
    int age;
}

@Entity 表明该类为一个实体类,默认会找到一个对应的表名(表名首字母大写,并将_去掉,同事将_后的首字母大写)。

常用属性:name,指定表名

也可以自定义表名:

@Entity(name = “user”)

@Table,当实体类名与表名不一致时,可以通过该注解修改。

常用属性:name,指定表。

@Table(name = “user”)

@Cloumn,与表名类似,实体类属性和表的字段有相应的对应规则,但是如果想自定义,可以使用该注解。

常用属性:

  name,指定列名。

  unique,是否唯一。

  nullable,是否允许为空。

  length,对于字符型,指定最大字符长度。

  insertable,是否允许插入。

  updatetable,是否允许更新

@id,写在属性上,指定表的主键。

它有多种生成方式:

TABLE:容器指定用底层的数据表确保唯一;

SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);

IDENTITY:使用数据库的IDENTITY列莱保证唯一;

AUTO:由容器挑选一个合适的方式来保证唯一;

NONE:容器不负责主键的生成,由程序来完成。

@id注解还有俩个配套的注解:@GeneratedValue、@GenericGenerator,用来指定主键生成策略。

@GenericValue,JPA通用策略生成器,默认为Auto方式。

@GenericGenerator,自定义主键生成策略。

相关推荐