Closed. This question is
opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便
editing this post用事实和引用来回答。
4年前关闭。
介绍
我是开发团队中的最新成员。我们主要进行Java Web开发并与Oracle数据库一起工作,但是在极少数情况下,我们与其他RDMS一起工作。为了扩展我的专业知识并探索更多现代方法,我决定学习Hibernate。
到目前为止,我不确定它是否适合我们的团队,但是我不能确定这是因为Hibernate合法地不符合我们的需求,或者是因为我们遵循的不良做法使得Hibernate“不愿意”出现。
例如,实际上我们与数据库的所有交互都是通过标准JDBC CallableStatements和存储过程进行的。我们遍历ResultSets并将它们放入bean / pojos中以供Web应用程序使用。据我所知,Hibernate喜欢精确建模表(
@Entity
,
@Table
)及其列。对于简单的
SELECT
查询,这是一种较为简单的方法。但是,对于复杂的数据库工作(想对原始数据运行分析),我要么沉迷于在Java代码中大量处理数据(并放弃最终映射表的实体类),要么通过丑陋的< cc>,这似乎打败了使用Hibernate的整个起点。
假设我不知道:
我的团队很早就告诉我,他们认为最好在数据库(即存储过程)中进行“繁重的工作”,而不是在应用服务器(即Java)中进行“繁重的工作”,我不知道它们是对还是错。如果它们是正确的,那么为什么存在像Hibernate这样的ORM?
另外,我
heard认为Hibernate的学习曲线相当僵硬,但是我觉得我完全没有注意这一点。数据库表是否应该精确模拟您在Web应用程序中所需的数据?我们的设计方法学已经走了吗?
最后,我知道存储过程vs ORM是热门的
topic,但是趋势似乎是ORM的“一面”。为什么?
tl; dr
Hibernate似乎只能在最琐碎的情况下帮助我们的用例,因为它需要大量复杂的配置和额外的资源来权衡。我想念什么?