首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernatetools ant任务- hbm2java -创建没有包语句的pojo。

hibernatetools ant任务- hbm2java -创建没有包语句的pojo。
EN

Stack Overflow用户
提问于 2012-08-23 07:20:36
回答 1查看 3.3K关注 0票数 0

我使用ant任务将映射(hbm.xml)导出到pojo类。它在映射目录中生成POJO文件。但是类错过了Package语句。它只需创建默认包中的所有文件。

代码语言:javascript
复制
// default package
// Generated Aug 23, 2012 12:34:40 PM by Hibernate Tools 3.2.2.GA

这是我的文件。

代码语言:javascript
复制
    <project name="Hibernate Tools for Ant - hbm2java" default="gensrc">

    <path id="tools">
        <path location="lib/hibernate-tools-3.2.3.GA.jar"/>
        <path location="lib/hibernate3.6.10.jar"/>
        <path location="lib/freemarker-2.3.8.jar"/>
        <path location="lib/hsqldb-2.2.4.jar"/>
        <path location="lib/commons-logging.jar"/>
        <path location="lib/dom4j-1.6.1.jar"/>
        <path location="lib/slf4j-api-1.6.1.jar"/>
        <path location="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
    </path>
    <taskdef name="gen-src" classname="org.hibernate.tool.ant.HibernateToolTask"
             classpathref="tools"/>
    <target name="gensrc">
        <gen-src destdir="src/main/java">
            <configuration
                    configurationfile="src/main/resources/hibernate.cfg.xml">
                <fileset dir="src/main/java/com/kee/example/domain/maps">
                    <include name="Event.hbm.xml"/>
                </fileset>
            </configuration>
            <hbm2java destdir="src/main/java/com/kee/example/domain"/>
        </gen-src>
    </target>
</project>

默认的Pojo.ftl (在hibernate-tools.jar中)具有如下声明

代码语言:javascript
复制
 ${pojo.getPackageDeclaration()}
// Generated ${date} by Hibernate Tools ${version}

为了在生成的POJO中有正确的包声明,我应该更改什么。

更新:这里是我的映射文件

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.kee.example.domain">
    <meta attribute="generated-class">EventBase</meta>
    <meta attribute="implement-equals">true</meta>
    <meta attribute="scope-field">protected</meta>
    <class name="com.kee.example.domain.Event" table="event">
        <id name="id" type="java.lang.Long">
            <generator class="native"/>
        </id>
        <property name="eventDate" type="timestamp"/>
        <property name="eventString" type="java.lang.String"/>
    </class>
</hibernate-mapping>
EN

回答 1

Stack Overflow用户

发布于 2013-02-16 21:14:46

我在maven中遇到了同样的问题,并且不确定原因,但是一旦我开始使用注释配置而不是jdbcconfiguration,问题就解决了。

代码语言:javascript
复制
<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>hibernate3-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <components>
                    <component>
                        <name>hbm2ddl</name>
                        <implementation>annotationconfiguration</implementation>
                        <outputDirectory>${db.src.dir}</outputDirectory>
                    </component>
                    <component>
                        <name>hbm2java</name>
                        <implementation>annotationconfiguration</implementation>
                        <outputDirectory>src/main/java</outputDirectory>
                    </component>
                </components>
                <componentProperties>
                    <drop>true</drop>
                    <create>true</create>
                    <export>false</export>
                    <format>true</format>
                    <jdk5>true</jdk5>
                    <ejb3>true</ejb3>
                    <outputfilename>${ddl.file}</outputfilename>
                    <templatepath>src/main/resources/hibernate-template</templatepath>
                    <delimiter>;</delimiter>
                    <configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile>
                </componentProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>${jdbc.groupId}</groupId>
                    <artifactId>${jdbc.artifactId}</artifactId>
                    <version>${jdbc.version}</version>
                </dependency>
            </dependencies>
        </plugin>

我不想要带注释的pojo类,所以我在*.ftl文件中注释了代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12086632

复制
相关文章

相似问题

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