spring data 接口之 Repository
2016-01-18 15:49
387 查看
Repository 是一个标记接口,继承该接口的Bean 会被Spring 容器识别为一个RepositoryBean,继承该接口的接口,有两大特点:
1. 使用Query 注解查询
2. 使用方法名查询:遵循SpringData 规范 命名,命名规则 :(find | get | read) + By + field ( + 条件关键字 + filed),注意条件关键字首字母大写
3. spring data repository 接口中的方法默认只有查询 和 保存的 事务, 没有更新和删除的事务
一 接口类声明:继承接口 Repository
二 测试类
三 源代码下载
1. 使用Query 注解查询
2. 使用方法名查询:遵循SpringData 规范 命名,命名规则 :(find | get | read) + By + field ( + 条件关键字 + filed),注意条件关键字首字母大写
3. spring data repository 接口中的方法默认只有查询 和 保存的 事务, 没有更新和删除的事务
一 接口类声明:继承接口 Repository
package org.zgf.spring.data.dao; import java.util.List; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; import org.springframework.data.repository.query.Param; import org.zgf.spring.data.entity.StudentPO; /** * Repository 是一个标记接口,继承该接口的Bean 会被Spring 容器识别为一个RepositoryBean,继承该接口的接口,有两大特点: * 1. 使用Query 注解查询 * 2. 使用方法名查询:遵循SpringData 规范 命名,命名规则 :(find | get | read) + By + field ( + 条件关键字 + filed) * 注意条件关键字首字母大写 * 3. spring data repository 接口中的方法默认只有查询 和 保存的 事务, 没有更新和删除的事务 * @author: zonggf * @date: 2016年1月15日-下午12:57:23 */ public interface IStudentBaseRepositoy extends Repository<StudentPO, Integer>{ // jpql= SELECT stu from StudentPO stu where stu.name = ? public StudentPO findByName(String name); // jpql= SELECT stu from StudentPO stu where stu.age > ? public List<StudentPO> findByAgeGreaterThan(Integer age); @Query(value="SELECT stu from StudentPO stu where student.id = ?1") public StudentPO getStudentPO(Integer id); @Query(value="SELECT stu from StudentPO stu where student.name = ?name") public StudentPO getStudentPOByName(@Param("name") String name); }
二 测试类
package org.zgf.spring.data.dao; import java.util.List; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.zgf.spring.data.base.BaseTest; import org.zgf.spring.data.dao.IStudentBaseRepositoy; import org.zgf.spring.data.entity.StudentPO; /** * @ClassName: Test_IStudentBaseRepositoy * @Description: * @author: zonggf * @date: 2016年1月15日-下午1:01:25 */ public class Test_IStudentBaseRepositoy extends BaseTest{ @Autowired private IStudentBaseRepositoy studentBaseRepositoy ; @Test public void test_findByName(){ String name = "zong"; StudentPO studentPO = this.studentBaseRepositoy.findByName(name); System.out.println(studentPO); } @Test public void test_greaterThan(){ List<StudentPO> students = this.studentBaseRepositoy.findByAgeGreaterThan(10); for (StudentPO studentPO : students) { System.out.println(studentPO); } } @Test public void test_query(){ StudentPO studentPO = this.studentBaseRepositoy.getStudentPO(1); System.out.println(studentPO); } }
三 源代码下载
相关文章推荐
- spring data 接口之 CrudRepository
- Eclipse格式化代码默认长度
- spring data Jpa 环境搭建
- Spring中的事务管理实例详解
- java技术路线图
- Java Web学习总结(18)——JSP标签
- Spring data 简介
- JAVA加密解密之RSA算法
- java特种兵读书笔记(4-2)——java通信之IO与内存
- Java Web学习总结(17)——JSP属性范围
- Java Web学习总结(16)——JSP的九个内置对象
- Java Web学习总结(16)——JSP的九个内置对象
- Java7的异常处理新特性-addSuppressed()方法等
- Eclipse智能提示及快捷键
- Java Web学习总结(15)——JSP指令
- JAVA加密解密之DH(Diffie-Hellman)算法
- Java-如何去掉JFrame上的最大化最小化和关闭按钮(转)
- javaThread学习(chapter1—线程的创建)
- Java学习之Iterator(迭代器)的一般用法 (转)
- JAVA的extends用法