首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hibernate hbm2hbmxml

hibernate hbm2hbmxml
EN

Stack Overflow用户
提问于 2009-04-24 09:30:25
回答 4查看 3.2K关注 0票数 3

我正在尝试使用ant hibernatetool任务从mysql中的数据库模式生成hbm.xml文件。ant任务运行时没有错误,但没有生成hbm.xml文件。我错过了什么..。

以下是相关的配置:

build.xml

代码语言:javascript
运行
复制
<taskdef name="hibernatetool"
    classname="org.hibernate.tool.ant.HibernateToolTask"
    classpathref="3p-classpath">
</taskdef>

<target name="hbmxmlgen"
    description="Creating hbm xml files from DB">
    <hibernatetool>
        <jdbcconfiguration 
            configurationfile="src/config/hibernate.cfg.xml"
            revengfile="src/config/hibernate.reveng.xml"
            detectmanytomany="true">
        </jdbcconfiguration>
        <hbm2hbmxml destdir="${mappings.dir}"/>
    </hibernatetool>
</target>

src/config/hibernate.cfg.xml

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/?useUnicode=true&characterEncoding=utf8</property>
        <property name="connection.username">root</property>
        <property name="connection.pool_size">1</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="current_session_context_class">thread</property>
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="show_sql">true</property>
    </session-factory> </hibernate-configuration>

src/config/reveng.xml

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">

<hibernate-reverse-engineering>
    <schema-selection match-schema="optimizer_config"/>
    <type-mapping>
        <sql-type jdbc-type="VARCHAR" hibernate-type="string"/>
        <sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long" />
        <sql-type jdbc-type="INTEGER" hibernate-type="java.lang.Integer" />
        <sql-type jdbc-type="DECIMAL" hibernate-type="java.lang.Double" />
    </type-mapping>
    <table-filter match-name="*" package="com.sokrati.optimizer.dbaccess.optimizerConfig"/>
</hibernate-reverse-engineering>
EN

回答 4

Stack Overflow用户

发布于 2009-09-09 10:16:10

我也有同样的问题,我发现以下两点很有用:

  1. 如果希望所有表都是'.*‘,则用于匹配名称的正则表达式。例如,知道架构名称区分大小写,因此请确保
    1. 中的<schema-selection>标记中的大小写正确
票数 2
EN

Stack Overflow用户

发布于 2009-05-12 14:56:25

我认为table-filter是错的。

尝试:

代码语言:javascript
运行
复制
<table-filter match-name="%" package="com.sokrati.optimizer.dbaccess.optimizerConfig"/>
票数 1
EN

Stack Overflow用户

发布于 2009-09-01 19:32:11

尝尝这个

代码语言:javascript
运行
复制
<property name="connection.username">ROOT</property>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/785164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档