Hibernate(最好)最常见的结构

时间:2012-08-07 11:08:19

标签: java hibernate

我有一个POJO类,其中包含数据库中每个表的hibernate注释。我的数据库也有一个HibernateUtility,它创建了SessionFactory。

我应该为每个数据库表或每个数据库的管理器创建一个管理器吗?

在经理下我的意思是一个类,它完成所有交易,CRUD。

哪能给我带来最佳表现?

3 个答案:

答案 0 :(得分:1)

每张桌子都有DAO通常很有帮助。您不需要编写大量代码,因为您可以使用generic dao

性能明智:请记住,您正在使用hibernate,而hibernate并没有将性能作为其支柱之一,但hibernate通常会缩短开发时间。如果您需要性能,请尝试使用myBatis或仅使用普通的jdbc。

答案 1 :(得分:1)

我更喜欢为DB中的每个表创建一个DAO类。我实际上有一个抽象的DAO对象,它执行所有常见的CRUD操作,然后我将覆盖或添加其他需要的查询方法。如果它全部在一个DAO中,我将无法重新使用我的CRUD逻辑。

实际上,我很惊讶没有一个标准的抽象CRUD实现,每个人都使用 - 写起来很简单(也许有一个维护得很好的?)。我的通用DAO还具有获取EntityManagerFactory的便捷方法 - 在Java SE环境中非常有用,其中不会注入这些类型的东西。

答案 2 :(得分:1)

性能与您拥有的课程数无关。

每个数据库表的管理器太多:业务用例通常涉及多个表。

整个数据库的管理员太少:在一个类中拥有应用程序的所有业务逻辑是不可维护的。

应用程序通常包含一组用例:用户管理,通知管理等。我会将这些用作将逻辑拆分为类的方法。

另外,请注意业务逻辑(我假设将在您的经理类中)应与数据访问逻辑(DAO,存储库)分开。 CRUD通常是DAO的职责,业务逻辑和事务划分在服务(管理)层中完成。