2009-08-26 47 views
4

我想用Hibernate编写一个程序。我的域名现已完成,正在编写数据库。休眠工作流程

我很困惑该怎么做。我应该

  • 使我的SQL表中的类,让Hibernate的让他们
  • 还是在 数据库中创建表和逆向工程并 让休眠使我的班?

我听到了某人的第一个选项,并阅读了Netbeans站点上的第二个选项。

有没有人知道哪种方法是正确的?

回答

4

这取决于你如何最好地概念化你正在编写的程序。当我设计我的系统时,我通常会根据实体以及它们与彼此的关系来思考,所以对于我来说,我先从业务对象开始,然后编写我的hibernate映射并让hibernate创建数据库。

其他人在数据库表格方面能够更好地思考,因为这种方法最适合他们。所以你必须根据你的经验决定哪一个适合你。

+0

当然,如果你从头开始,我会让休眠做这项工作。我懒惰虽然:) – lucas 2009-08-26 15:00:18

+1

我曾经听过懒惰的程序员通常是最好的LOL – Zoidberg 2009-08-26 15:02:18

1

我相信你也可以做,所以这是优先选择。

就我个人而言,我手写这个地段。虽然Hibernate为你创建数据库做了一件合理的工作,但它并没有像我自己做的那样好。我假设对于它生成的Java类也是如此,尽管我从未使用过该功能。

关于生成的类(如果你去了类生成路线),我打赌每个领域都有一个getter/setter字段是否应该只读或没有人说线程安全和可变性,无法添加行为,因为如果重新生成类,它将被覆盖。

+1

加上当你是新的少,发生在场景后面的“魔术”更好,手动做一切将让你更好地理解整个过程。 – serg 2009-08-26 15:13:46

+0

@serg555:关于较少'魔法'的好处,+1。 – 2009-08-26 15:29:41

0

绝对写入java对象,然后添加持久性并让hibernate生成表。

如果你走另一条路,你会失去OOD和所有好东西的好处。

0

我主张先写Java。尽管如此,这可能是个人偏好。

如果你分析你的域名,你可能会发现它们有些重复。

  • 例如,审计列(用户创建者和编辑者,创建和编辑的时间)通常对大多数表格都是通用的。
  • 该id通常是一个共同的字段。

看看你的域名,看看你的重复。

重复是重复使用的机会。 你可以使用继承或组合。 优点:

  • 更少的时间:您将有少得多的东西来写,
  • 逻辑:同样的逻辑字段将被写一次(这将是其他很多类似领域)
  • 再利用:在你的实体的客户端代码,你可以编写可重用的代码。例如,如果所有实体都具有相同的由于其超类而被称为ident的id字段,则客户端代码可以使通用调用object.getIdent()无需查找对象的确切类,因此它将更具可重用性。