java - Hibernate 相对于基于数据库表和存储过程生成的 DAL 有何优势?

标签 java hibernate

与仅基于数据库表和存储过程生成的 DAL 相比,Hibernate 有哪些优势?

即编写或使用工具生成数据访问层代码与使用 hibernate

最佳答案

  1. hibernate 实体是可以封装业务逻辑的常规 POJO,如果数据库架构发生更改,可以调整实体,而无需重新生成。
  2. 获取实体并保存它们的代码 (hibernate-core) 被广泛使用,并在许多不同的框架中得到支持。
  3. Hibernate 中已包含事务管理、基于 Java 构建器的查询语言等其他功能,如果您发现这些功能有用,那么您将立即使用它们

最大的缺点是你失去了细粒度的控制,所以在参与之前先看看 Hibernate 做你需要它做的所有事情有多好......而且,学习 Hibernate 需要相当长的时间,而且有很多东西怪癖,您不会在同一周内开始使用 hibernate 并成为它的大师...我已经使用它一年多了,但偶尔仍然会遇到难以发现的问题

关于java - Hibernate 相对于基于数据库表和存储过程生成的 DAL 有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807158/

相关文章:

java - JPA @EntityListeners、@PrePersist 和 Spring @RepositoryEventHandler、@HandleBeforeSave 之间的区别

Hibernate 和三个表发生 java.lang.StackOverflowError

java - 没有名为缓存的 EntityManager 的持久性提供程序

java - 在 jsoup 选择器中使用逻辑或、非和

java - 无法将消息发送到远程对等本地类不兼容 : stream classdesc serialVersionUID

java - org.hibernate.QueryException : * only allowed inside aggregate function in SELECT

java - 安卓工作室 : decrease font size

java - 是否可以使用不同的端口实例化同一个 spring-boot 应用程序两次?

java - Spring Boot maven 插件找不到主类,无法执行 java

java - 如何避免 "two bean definitions found"错误