1. 程式人生 > >spring date jpa關於jpql的使用注意事項

spring date jpa關於jpql的使用注意事項

pom.xml配置

<!-- 新增mysql依賴包 即新增mysql驅動jar包 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- 新增jpa依賴包 jpa-java持久層 spring data是一個開源框架,spring data jpa是這個框架中的一個模組,
	極大的簡化了jpa的寫法 除了crud以外的分頁,排序等方法,只需要介面繼承一個類就可實現
 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

一、建立好實體類,編寫自己的StuRepository介面 可繼承Repository介面
1.Repository是一個空介面,即是一個標記介面;
2. 若我們定義的介面繼承了Repository,則該介面會被IOC容器識別為一個Repository Bean納入到IOC容器中,進而可以在該介面中定義滿足一定規範的方法。
3. 實際上也可以通過@RepositoryDefinition,註解來替代繼承Repository介面。
4. 查詢方法以find | read | get開頭;
5. 涉及查詢條件時,條件的屬性用條件關鍵字連線,要注意的是條件屬性以首字母大寫。
6.使用@Query註解可以自定義JPQL語句實現更靈活的查詢

@Query("from Student where name=:na")
public Student findByqlName(@Param("na")String name);

注意from後面表名為實體類名,否則會報錯** is not mapped
二、編寫service層

@Resource
private stu2Repository stu2Rep;	//注入repository
//定義自己的方法
public Student finByqlName(String name) {
	return stu2Rep.findByqlName(name);
}

三、編寫controller層,注入service

@RequestMapping("/findqlname")
public Student findByqlName(String name){
	return stuService.finByqlName(name);
}

也可繼承CrudRepository介面,其中有很多已提供的方法,也可以自己新增方法進去
@RestController(controller類上)相當於 @Controller 和@ResponseBody(方法上)