1

我尝试schema.ddlentity-pojosusing生成一个Hibernate 4.1
Hibernate-Libraries 包括javaee-api-6.0.jarWEB-INF/lib. (项目在 上运行JBoss 7.1.1)。
我不想hibernate.hbm2ddl.auto用于自动模式生成。
所以我有以下蚂蚁目标:

<!-- language: xml -->

<target name="ddl-generation"
    description="Export schema to DDL file">

    <taskdef name="schemaexport" 
            classname="org.hibernate.tool.hbm2ddl.SchemaExportTask">
        <classpath>
            <fileset dir="WebContent/WEB-INF/lib">
                <include name="*.jar" />
            </fileset>
        </classpath>
    </taskdef>

    <schemaexport
        properties="${basedir}/src/META-INF/hibernate.properties" 
        quiet="no"
        text="no"
        drop="no"
        delimiter=";"
        output="${basedir}/schema-export.sql" />

</target>

但是当我执行它时,它失败并出现以下错误:

java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1361)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1064)

我可以复制jboss-logging-3.1.0.GA.jar到 ant-target 的类路径,但是它失败了,因为javaee-api-6.0.jar仅用于编译:

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/transaction/SystemException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)

我能做些什么来解决这个问题?
全部复制Jboss-Jars?!
任何人如何生成DDLfrom JPA-Pojoswith Hibernate 4
它似乎与Hibernate3.

4

1 回答 1

2

您可能会发现这篇博文很有用http://doingenterprise.blogspot.com/2012/05/schema-generation-with-hibernate-4-jpa.html它描述了从 JPA 2.0 实体生成 ddl 脚本的过程。尽管它使用 Maven 作为示例,但它可以很容易地被 Ant 采用,因为它只是运行一个带有 main 方法的类。您只需要获得正确的依赖项。这个列表应该有望涵盖所有这些:

  • hibernate-entitymanager-4.1.3.Final.jar
  • jboss-logging-3.1.0.GA.jar
  • jboss-transaction-api_1.1_spec-1.0.0.Final.jar
  • dom4j-1.6.1.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar
  • javassist-3.15.0-GA.jar
  • hibernate-core-4.1.3.Final.jar
  • antlr-2.7.7.jar
  • hibernate-commons-annotations-4.0.1.Final.jar
  • 持久性-api-1.0.jar
于 2012-05-31T19:29:13.300 回答