Hibernate比基于db表和sprocs生成的DAL有什么好处?
即。编写或使用工具为数据访问层生成代码而不是使用hibernate
答案 0 :(得分:1)
最大的缺点是你会失去细粒度的控制,所以看看Hibernate在介入之前做了你需要它做的所有事情的程度......同样,学习hibernate还需要很长时间,而且很多怪癖,你不会开始使用hibernate,并在同一周成为它的主人...我已经使用它超过一年仍然有偶尔难以找到的问题
答案 1 :(得分:1)
我使用Hibernate并对ant中的模型和DAO进行逆向工程。 ant任务通过查看数据库来生成它们。它工作得很好。随着项目的继续,数据库表的更改通常会破坏Hibernate模型。我们只是重新设计模型,我们很高兴。
如果你按照自己的方式进行Hibernate并且坚持使用常见的SQL结构。我刚刚使用Hibernate完成了两个相当大的项目。 Hibernate没有造成任何困难。如果你必须做一些花哨的查询,虽然经验丰富的Hibernater可能不需要,但使用SQL很容易。
你还能以非常自然的方式获得爬行课程的能力,这也很好。
例如,如果调查有很多问题,而问题有一个答案,您可以说
Survey survey = SurveyDAO.get(entityManager, 1L); // 1 is the PK
List<Question> questions = survey.getQuestions();
for(Question question: questions) {
Answer answer = question.getAnswer();
System.out.println("Question "+ a.getQuestionNumber()+" = "+answer.getText());
}
这种关系也是另一回事。如果我们有问题,我们可以进行调查:
Survey s = someQuestion.getSurvey();
List<Questions> q = s.getQuestions();
因此,如果知道一个问题,很容易在调查中得到所有问题。
要完成所有我们不必将任何Hibernate代码写入SurveyDAO.get()以外的代码。真的很容易。