`
XmKevinChen
  • 浏览: 86116 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

[Hibernate]SchemaUpdate建立索引问题

    博客分类:
  • J2EE
阅读更多
当hibernate的hbm2dll配置为
hibernate.hbm2ddl.auto update

将会发现Hibernate不会为我们创建任何自定义的索引(不包括主键跟外键索引),不论你使用xml方式或者annotation进行声明配置
这个问题在Hibernate的JIRA多次出现,甚至有人专门为此发布了打了补丁的hibernate.jar
这个所谓的bug,在目前已发布的hibernate的版本中,一直都没有解决,或者说不予理睬(Gavin King个人认为这个不是bug)

这里引用hibernate 3.2.5版的jira
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1012

引用Hibernate上官方的解释
引用

The hibernate.hbm2ddl.auto=update setting doesn't create indexes
SchemaUpdate is activated by this configuration setting. SchemaUpdate is not really very powerful and comes without any warranties. For example, it does not create any indexes automatically. Furthermore, SchemaUpdate is only useful in development, per definition (a production schema is never updated automatically). You don't need indexes in development.

Hibernate doesn't generate the database indexes I want in the schema!

Automatic schema export (and update) by Hibernate tools is only useful in development. You never need indexes in development, they are purely for performance and scalability tuning in production systems. Production schemas are never automatically generated, at least not completely. A DBA adds indexes to the automatically generated schema during SQL tuning and testing of the application, before going into production with the (possibly automatically generated) base schema, and her handwritten optimized DDL. Also note that optimized DDL is highly vendor specific and totally dependent on the environment (SQL execution plans, tablespace configuration, caches, etc). Even if Hibernate developers would encourage you to automatically generate production-ready schemas (we don't, and we also don't like ad-hoc SQL tuning by throwing a bunch of indexes onto a schema), Hibernate could never offer such a feature.
分享到:
评论

相关推荐

    hibernate-extensions和Middlegen-Hibernate

    为了解决这一问题,两个工具——hibernate-extensions和Middlegen-Hibernate应运而生,它们可以自动生成这些代码,提高了开发效率。 **hibernate-extensions** 是Hibernate框架的一个扩展,它提供了一些额外的功能...

    Hibernate+中文文档

    目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class ...20.4. SchemaUpdate命令行选项 20.5. SchemaValidator命令行参数

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 ------------------------------------------------------------------------...20.4. SchemaUpdate命令行选项 20.5. SchemaValidator命令行参数

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 ------------------------------------------------------------------------...20.4. SchemaUpdate命令行选项 20.5. SchemaValidator命令行参数

    hibernate链接oracle

    - `schemaUpdate`: 设置为`true`时,Hibernate会在启动时自动更新数据库结构,使其与实体映射文件保持一致。 - `hibernateProperties`: Hibernate属性配置,其中`hibernate.dialect`设置了方言为`...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 ------------------------------------------------------------------------...20.4. SchemaUpdate命令行选项 20.5. SchemaValidator命令行参数

    hibernate入门

    Hibernate提供了诸如SchemaExport、SchemaUpdate等工具,用于根据实体类自动生成数据库表结构,或者同步数据库结构,简化了数据库的维护工作。 10. **最佳实践** 使用Hibernate时,应注意不要滥用Session,避免...

    hishop升级包

    `SchemaUpdate.sql`是数据库结构更新的脚本,用于调整或新增数据表以适应新版本的需求;`readme.txt`通常包含详细的升级指南和注意事项;而`update`文件可能是一个可执行程序或者包含一系列更新文件的目录,用于替换...

    易分销.2.0to2.0.1.Upgrade.易分销2.0升级包

    1. **SchemaUpdate.sql**:这是一个数据库脚本文件,通常用于在系统升级时更新数据库结构。这可能是为了适应新版本系统的需求,添加新的表,修改已有表的结构,或者调整数据关系。 2. **readme.txt**:这是常见的...

Global site tag (gtag.js) - Google Analytics