Java Persistence API,中文名Java持久層API,是JDK 5.0註解或XML描述對象—關係表的映射關係,並將運行期的實體對象持久化到數據庫中。數據庫
JPA包括如下3方面技術:bash
元數據描述對象和表之間的映射關係,框架據此將實體對象持久化到數據庫表中。框架
如:@Entity、@Table、@Column、@Transient等註解dom
用來操做實體對象。執行CRUD操做。spa
經過面向對象而非面向數據庫的查詢語言查詢數據,避免程序的SQL語句緊密耦合。code
@Repository:會被做爲持久層操做(數據庫)的bean來使用cdn
創建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)
blog
@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後面跟屬性名稱。
繼承