以下是我对 Spring Data JPA
的问题。
Q1 Spring Data JPA是ORM吗?如果不是,那它是什么?
Q2 Spring Data JPA有什么优势?
以下是我对 Spring Data JPA
的问题。
Q1 Spring Data JPA是ORM吗?如果不是,那它是什么?
Q2 Spring Data JPA有什么优势?
Q1 Spring Data JPA 是ORM吗?如果不是,它是什么?
不是。它是一个可以在编译时创建“自动”数据访问对象(DAO)的系统,并在这些DAO中使用ORM(如Hibernate)。
Q2 Spring Data有什么优势?
例如,您可以像这样创建实体:
@Entity
public class Foo {
@Id
private Long id;
private String name;
...
}
并且一个仓库定义应该像这样:
public interface FooRepository extends CrudRepository<Foo, Long> {
//that's it, nothing else. no code
}
Spring Data JPA会创建一个代理仓库类(代理方法调用到SimpleJpaRepository)来选择、插入、更新和删除您的Foo对象。
@Controller
public class FooController {
@Autowired
private FooRepository fooRepository;
@RequestMapping("/")
@ResponseBody
Foo getFoo() {
return fooRepository.findOne(1L); //look, you didn't need to write a DAO!
}
}
这个仓库类在运行时使用您的JPA EntityManager。