Hibernate 和 JPA 出了什么问题
1个回答
展开全部
事实上,Hibernate是最高级的传统ORM解决方案之一。不管怎样,使用ORM的问题在于,它的设计初衷主要是依赖整个实体才能工作。另一方面,
关系型数据库提供了强大的组合、过滤和转换实体及它们的字段的能力。为了保留这些灵活性,Hibernate提供了各种特性来弥补这些差距。但是为了正确
的使用这些特性,你必须做很多抉择: XML还是注解,HQL还是criteria
API,懒装还是即使获取等等。Hibernate内部所做的工作,尤其是当它实际执行一次数据库连接时所做的事情并不总是简单明了的(如果你把日志级别
调到debug -
你就能看到它的复杂性)。当使用和配置恰当的时候,Hibernate也许能工作的很好,但是这需要花费很长时间去了解很多注意事项。尤其是,如果你对
Hibernate还不熟悉,那么学习曲线还是很陡峭的。
Hibernate 最缺少的是对编译期安全性的支持。在使用HQL和criteria API时,你都需要提供字符串化的属性名称甚至整个SQL语句 – 这使得每次数据模型的变更都成为一次冒险 – 这个问题只能通过外部的并且是费时的测试来解决。
关系型数据库提供了强大的组合、过滤和转换实体及它们的字段的能力。为了保留这些灵活性,Hibernate提供了各种特性来弥补这些差距。但是为了正确
的使用这些特性,你必须做很多抉择: XML还是注解,HQL还是criteria
API,懒装还是即使获取等等。Hibernate内部所做的工作,尤其是当它实际执行一次数据库连接时所做的事情并不总是简单明了的(如果你把日志级别
调到debug -
你就能看到它的复杂性)。当使用和配置恰当的时候,Hibernate也许能工作的很好,但是这需要花费很长时间去了解很多注意事项。尤其是,如果你对
Hibernate还不熟悉,那么学习曲线还是很陡峭的。
Hibernate 最缺少的是对编译期安全性的支持。在使用HQL和criteria API时,你都需要提供字符串化的属性名称甚至整个SQL语句 – 这使得每次数据模型的变更都成为一次冒险 – 这个问题只能通过外部的并且是费时的测试来解决。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询