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