时间的法外狂徒

导航

JPA的@Entity@Table@Column@Id

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,自定义主键生成策略。

posted on 2020-05-09 22:45  抄手砚  阅读(594)  评论(0编辑  收藏  举报