【问题标题】:Hibernate <table> tag reverse engineering not workingHibernate <table> 标签逆向工程不起作用
【发布时间】:2015-03-16 08:28:22
【问题描述】:

老实说,我不知道还能做什么。我到处找,但什么都没有。任何人,请帮助...

在我的逆向工程文件中,我试图将我的一个表的主键生成器类更改为“身份”。在数据库(ms sql 2012)上,主键列设置为标识,但休眠将其解释为“已分配”,因此我正在尝试纠正该问题。

这是我放入逆向工程 xml 文件的内容:

<table name="TITLE">
      <primary-key>
          <generator class="identity"/>
          <key-column name="id"/>
      </primary-key>
</table>

然而,&lt;table&gt; 标签似乎没有被考虑在内。请问,我做错了什么?我错过了什么吗?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    由于数据库和JDBC驱动版本有很多不同,更通用的解决方法是在org.hibernate.mapping.Table构造函数中下一个断点,然后在调试器中运行Mavenhibernate3:hbm2java,看看传下来的值调用链,例如:

    Table.<init>() line: 105    
    Mappings.addTable(String, String, String, String, boolean) line: 188    
    MappingsDatabaseCollector.addTable(String, String, String) line: 21 
    

    就我而言,我发现catalogschema 都是null。我的&lt;table&gt; 标记被忽略,直到我删除catalogschema 属性。

    【讨论】:

      【解决方案2】:

      我刚刚想通了。您必须同时包含架构和目录。就我而言,目录是数据库名称:

      <table name="TITLE" catalog="hibernatetest" schema="dbo" class="Jeffery_jump">
            <primary-key>
                <generator class="identity"/>
                <key-column name="id" property="version"/>
            </primary-key>
      </table>
      

      烦人的是根据官方的hibernate文档,架构和目录是可选的。干得好,冬眠。干得好。

      【讨论】:

      • 我不得不做相反的事情。查看单独的答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2015-02-11
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2015-09-27
      相关资源
      最近更新 更多