Spring Data JPA和ORM之间的区别

mub*_*een 6 orm spring-data-jpa

以下是我的问题Spring Data JPA.

Q1是Spring Data JPA,ORM?如果不是那么,它是什么?

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

Nei*_*gan 9

Q1是Spring Data JPA,ORM?如果不是那么,它是什么?

不是.它是一个在编译时为您创建"自动"数据访问对象(DAO)的系统,并在这些DAO中使用 ORM(如Hibernate).

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

您不需要编写自己的DAO

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

@Entity
public class Foo {

  @Id
  private Long id;

  private String name;

  ...
}
Run Code Online (Sandbox Code Playgroud)

和这样的存储库定义:

public interface FooRepository extends CrudRepository<Foo, Long> {

}
Run Code Online (Sandbox Code Playgroud)

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!
  }
}
Run Code Online (Sandbox Code Playgroud)

此存储库类在运行时使用JPA EntityManager.