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后面跟属性名称。