代码之家  ›  专栏  ›  技术社区  ›  Manius

为什么Hibernate会重新实现数据库已有的功能?

  •  1
  • Manius  · 技术社区  · 14 年前

    例如:

    @Table(name = "stock", catalog = "mkyong", uniqueConstraints = {
    @UniqueConstraint(columnNames = "STOCK_NAME"),
    @UniqueConstraint(columnNames = "STOCK_CODE") })
    

    @Column(name = "STOCK_NAME", unique = true, nullable = false, length = 20)
    

    诸如“unique”、“nullable”甚至字段长度之类的约束是核心数据库功能。为什么在这里包括这个?另外(尽管这可能会伤害一些人),我敢打赌,数据库对这些限制的实现,特别是像Oracle这样的主流商业DBS,可能比OSS Hibernate开发者能想到的更好。

    在Hibernate中使用这种类型的东西是明智的,还是在数据库中放置约束等更好的做法?如果您使用这些休眠特性,实际上您将数据库视为一个文件系统,那么有什么意义呢?这个用法无处不在,但我还没有找到解释为什么要这样做的文档。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Bozho    14 年前

    hibernate.hbm2ddl.auto configuration

        2
  •  0
  •   Hendrik Brummermann    14 年前