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後面跟屬性名稱。