Spring Data JPA和ORM之间的区别

时间:2016-02-02 10:00:25

标签: orm spring-data-jpa

以下是关于Spring Data JPA的问题。

Q1 是Spring Data JPA,ORM?如果没有,那是什么?

Q2 Spring数据JPA有什么优势?

1 个答案:

答案 0 :(得分:7)

  

Q1是Spring Data JPA,ORM?如果没有,那是什么?

没有。这是一个创建"自动"数据访问对象(DAO)在编译时为您服务,在这些DAO中使用 ORM(如Hibernate)。

  

Q2弹簧数据JPA有什么优势?

您不需要编写自己的DAO

例如,您创建一个这样的实体:

@Entity
public class Foo {

  @Id
  private Long id;

  private String name;

  ...
}

和这样的存储库定义:

public interface FooRepository extends CrudRepository<Foo, Long> {

}

Spring Data JPA将在编译时创建一个真正的存储库类,您可以使用它来选择,插入,更新和删除您的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。