Spring Data JPA中的几个常用注解

今天上午在家看了一上午书,反正现在也无事可做,就把今天书上自己感觉有用的内容写下来,一方面是分享给大家,另一方面也当做个笔记。

@Param用法

默认情况下,参数是通过顺序绑定在查询语句上的。这使得查询方法对参数位置的重构容易出错。为了解决这个问题,可以使用**@Param**注解指定方法参数的具体名称,可以通过绑定的参数名字做查询条件。
@Query(“select u from User u where u.firstname=:firstname or u.lastname=:lastname”)
User findByLastnameOrFirstname(@Param(“lastname”) String lastname,@Param(“firstname”) String firstname);

@Modifying修改查询

源码:
public @interface Modifying{
/如果配置了一级缓存,这个时候用clearAutomatically=true,就会刷新hibernate的一级缓存,不然你在同一接口中更新一个对象,接着查询这个对象,查出来的对象就是没有更新之前的状态。/
boolean clearAutomatically() default false;
}

@Entity

@Entity定义对象将会成为被JPA管理的实体,将映射到指定的数据库表。
源码:
public @interface Entity{
//可选,默认是此实体类的名字,全局唯一
String name() default “”;
}

@Table

@Table指定数据库的表名。
源码:
public @interface Table{
//表的名字,可选。如果不填写,系统认为好实体的名字一样为表名
String name() default “”;
//此表的catalog(),可选
String catalog() default “”;
//此表所在的schema,可选
String schema() default “”;
//唯一性约束,只有创建表的时候有用,默认不需要
UniqueConstraint [] uniqueConstraits() default {};
//索引,只有创建表的时候使用,默认不需要
Index[] indexes() default {};
}

@Id

@Id定义属性为数据库的主键,一个实体里面必须有一个。

@GeneratedValue

@GeneratedValue为主键生成策略
源码:
public @interface GeneratedValue {
//Id的生成策略
GenerationType strategy() default AUTO;
//通过Sequences生成Id,常见的是Orcale数据库ID生成规则,需要配合@SequenceGenerator使用
String generator() default “”;
}
GenerationType一共有一下4个值:
public enum GenerationType {
//通过表产生主键,框架由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植
TABLE,
//通过序列产生主键,通过@SequenceGenerator注解指定序列名,MySQL不支持这种方式
SEQUENCE,
//采用数据库ID自增长,一般用于MySQL数据库
IDENTITY,
//JPA 自动选择合适的策略,是默认选项
AUTO
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值