JPA中常用的注解、默认继承方法和关键字抽象方法
一、JPA中的常用注解:
1、@Entity:标记在类名上面,作为实体类的标识;
2、@Table:当实体类与其映射的数据库表名不相同时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。
@Table 标注的常用选项是 name,用于指明数据库的表名。 @Table 标注还有一个两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名。
uniqueConstraints 选项用于设置约束条件,通常不须设置;
3、@Id:设置对象表示符,标识的实体类的属性映射对应表中的主键;
4、@GeneratedValue:设置标识符的生成策略,常与@Id 一起使用。
参数:strategy 指定具体的生成策略:
方式一:@GeneratedValue(strategy=GenerationType.AUTO) 也是默认策略, 即写成@GeneratedValue也可;类似于 hibernate 的 native 策略,生成方式取决于底层的数据库。
三、关键字抽象方法:
1、方法命名约定:
(1)条件属性通过条件关键字连接。
(2)条件属性的首字母必须大写。
2、命名案例及解释:
(1)And — 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd)根据用户名字和密码查找。
(2)Or — 等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr)根据用户名或地址查找;
(3)Between — 等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min)查询薪资在min 和 max 之间;
(4)LessThan — 等价于 SQL 中的 “<”,比如 findBySalaryLessThan(int max);
(5)GreaterThan — 等价于 SQL 中的”>”,比如 findBySalaryGreaterThan(int min);
(6)IsNull — 等价于 SQL 中的 “is null”,比如 findByUsernameIsNull();
(7)IsNotNull — 等价于 SQL 中的 “is not null”,比如 findByUsernameIsNotNull();
(8)NotNull — 与 IsNotNull 等价;
(9)Like — 等价于 SQL 中的 “like”,比如 findByUsernameLike(String user);
(10)NotLike — 等价于 SQL 中的 “not like”,比如 findByUsernameNotLike(String user);
(11)OrderBy — 等价于 SQL 中的 “order by”,比如 findByUsernameOrderBySalaryAsc(String user);
(12)Not — 等价于 SQL 中的 “! =”,比如 findByUsernameNot(String user);
(13)In — 等价于 SQL 中的 “in”,比如 findByUsernameIn(Collection userList) ,方法的参数可以是 Collection类型,也可以是数组或者不定长参数;
(14)NotIn — 等价于 SQL 中的 “not in”,比如 findByUsernameNotIn(Collection userList) ,方法的参数可以是Collection 类型,也可以是数组或者不定长参数;