Java后台开发学习(4)——Spring Data Jpa

625 阅读1分钟

JPA

Java Persistence API,中文名Java持久层API,是JDK 5.0注解或XML描述对象—关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA包括以下3方面技术:

ORM映射元数据

元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。

如:@Entity、@Table、@Column、@Transient等注解

API

用来操作实体对象。执行CRUD操作。

查询语言

通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

Repository

@Repository:会被作为持久层操作(数据库)的bean来使用

建立entity:

@Data
@Document(collection = "team")
public class Team {

    @NotNull
    @Id
    @Field("team_id")
    private String teamId = UUID.randomUUID().toString();

    @NotNull
    @Field("team_name")
    private String teamName;

    @NotNull
    @Field("creator")
    private String creatorId;

    @NotNull
    @Field("member_id")
    private HashSet<String> memberId;

}

声明TeamRepository接口,继承MongoRepository(因为项目用MongoDB)

@Repository
public interface TeamRepository extends MongoRepository<Team, String> {

    Team findByTeamId(String teamId);

    @Query("{'member_id': {$elemMatch: {$in: [?0]}}}")
    List<Team> findAllByMemberId(String userId);

}

自定义查询


自定义的简单查询就是根据方法名来自动生成SQL,主要的语法是findXXBy,readXXBy,queryXXBy,countXXBy, getXXBy后面跟属性名称。