JPA记录

  •     JPA规范
  •     ORM映射

    @Entity:映射Class类实体
    @Table:映射表
    @MappedSuperClass:映射父类,不产生数据库表
    @Access:标识访问策略
    @Id:实体ID标识
    @GeneratedValue:实体ID生成方式
    @Column:数据库表列映射
    @Lob:clob或blob映射
    @Enumerated:枚举映射
    @Temporal:日期或时间类型映射
    @ElementCollection:基本类型或Class类映射
    @MapKey:Map的key映射方式
    @Transient:不映射

  •     关联关系

    @OneToOne:一对一关系,使用数据库表的一个字段映射;不产生中间表。
    @OneToMany:一对多关系,可以使用数据库的一个字段映射,也可以使用中间表;默认使用数据库表字段映射。
    @ManyToMany:多对多关系,使用中间表映射。
    @JoinTable:数据库表关系的关联表,对开发者透明。
    @JoinColumn:数据库表关系的关联列,对开发者透明

  •     实体生命周期

    瞬时:创建实体对象。
    托管:瞬时状态实体调用persist方法,进行脱管;持久化实体调用find方法,进行托管。
    持久化:调用find方法转为托管状态。
    脱管:脱管状态事务结束,自动转为脱管状态;调用refresh或merge方法转为托管状态。
    移除:在脱管状态中移出实体后,转为移除状态。

  •     在Spring和Hibernate支持的基础上,进行JPA开发

    Spring自动为实现Repository接口提供动态代理。动态代理的方法分为两种,一种为基类接口方法和自定义方法。基类接口方法代理默认调用SimpleJPARepository对象的方法;自定义的方法通过方法命名规则或注解进行代理。
    Spring中DAO层代理通过配置的factory-class生成DAO层接口的代理。如果不需要生成Repository子接口的代理,需要使用@NoRepositoryBean对接口进行注解。否则会默认查找后缀为Impl接口子类,并将其作为实现类。
JPA记录
 

  •  以下是在Spring的dao接口中扩展update方法
    JPA记录
     
    JPA记录
     
    JPA记录
     
    JPA记录
     

相关推荐