spring date jpa關於jpql的使用注意事項
阿新 • • 發佈:2018-12-21
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(方法上)