配置hyperjaxb来创建hibernate映射和mysql数据库 [英] configuring hyperjaxb to create hibernate mappings and a mysql database

查看:142
本文介绍了配置hyperjaxb来创建hibernate映射和mysql数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用hyperjaxb从xsd文件生成Java类。我怎样才能配置它来生成hibernate注释,并触发 hbm2ddl 来为生成的类创建一个包含表的MySQL数据库?

我下载了hibernate的采购订单样本从此链接,然后导航到 cmd.exe 中的目标目录并运行 mvn clean install ,但生成的文件夹不包含任何Java类,并且这也不包含任何hibernate / MySQL。我想得到一个工作示例,它可以从下载的 xsd 文件创建所有内容,以便我可以插入自己的 xsd 文件放入代码中,并自动生成所有的java / hibernate / mysql。这样我可以花时间调整我的 xsd 文件,以便生成所需的java / hibernate / MySQL。

代码示例或分步说明将非常有帮助。我正在使用eclipse。




**编辑:**



这个问题是在发布了其他一些问题之后发布的要找到这个问题的完整答案,您需要查看其他问题的答案,特别是此链接中的一个

解决方案

UPDATE



最后,OP似乎在项目的根目录中寻找生成的类,而不是 target \ generated-source\xjc ,尽管教程 a>明确指出在哪里寻找:


如果您浏览target / generated-sources / xjc目录,您会发现
几个生成的java文件,例如 PurchaseOrderType.java







当你说没有任何东西时,我不理解它erated。我刚刚重新检查过,一切正常。



我的步骤是:


  • 下载hyperjaxb3-ejb-samples-po-initial-0.5.6-maven-src.zip
  • 解压缩

  • 转至hyperjaxb3-ejb -samples-po-initial-0.5.6
  • mvn clean install



这是我的get:

  [INFO] --------------------- -------------------------------------------------- -  
[INFO]构建Hyperjaxb3示例[po-initial:maven] 0.5.6
[INFO] ---------------------- --------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean(默认清除)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO]删除C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target
[信息]
[信息] --- maven-hyperjaxb3-plugin:0.6.0:generate(默认)@ hyperjaxb3-ejb-samples-po-initial-maven ---
【信息】来源不是up-t邻日期; XJC执行将被执行。
[WARNING]根据Java持久性API规范第2.1节,实体必须是顶级类:
实体类必须是顶级类。
您的JAXB模型未针对顶级本地范围设定进行自定义,请使用< jaxb:globalBinding localScoping =toplevel/>全局绑定定制。
org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin

[警告]根据Java持久性API规范第2.1节,实体必须实现可序列化的接口:
If一个实体实例被作为一个分离的对象
传递(例如,通过一个远程接口),实体类必须实现
Serializable接口。
您的JAXB模型未定制为可序列化,请使用< jaxb:serializable />全局绑定自定义元素,使您的模型可序列化。
org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin

[INFO]
[INFO] --- maven-resources-plugin:2.6:resources(default-resources) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[警告]使用平台编码(实际上是Cp1252)来复制已过滤的资源,即构建依赖于平台!
[信息]复制1资源
[信息]复制0资源
[信息]复制1资源
[信息]
[信息] --- maven-compiler -plugin:2.5.1:compile(default-compile)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[警告]文件编码尚未设置,使用平台编码Cp1252,即构建是平台依赖!
[INFO]将5个源文件编译为C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources(default-testResources)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[警告]使用平台编码(实际上是Cp1252)来复制已过滤的资源,即构建依赖于平台!
[INFO]复制2资源
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile(default-testCompile)@ hyperjaxb3-ejb-samples- po-initial-maven ---
[警告]文件编码尚未设置,使用平台编码Cp1252,即构建依赖于平台!
[INFO]将5个源文件编译为C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test(default-test)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Surefire报告目录:C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\surefire-reports

----------------------------------------------- --------
测试
--------------------------------- ----------------------
运行RoundtripTest
检测到[file:/ C:/ Projects / workspaces / hj3 / dist / hyperjaxb3- EJB-样品-PO-初始0.5.6 /目标/类/ META-INF / persistence.xml中]。
RoundtripTest

加载实体管理器工厂属性。
RoundtripTest

从[file:/ C:/Projects/workspaces/hj3/dist/hyperjaxb3-ejb-samples-po-initial-0.5.6/target/加载实体管理器工厂属性测试类/ persistence.properties]。
RoundtripTest

测试样本。
RoundtripTest

示例目录[C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\src\ test\samples。
RoundtripTest

测试示例[po.xml]。
往返测试

解组。
RoundtripTest

开幕式。
RoundtripTest

保存对象。
RoundtripTest

开幕式。
RoundtripTest

加载对象。
RoundtripTest

关闭会话。
RoundtripTest

初始对象:
<?xml version =1.0encoding =UTF-8standalone =yes?>
< purchaseOrder orderDate =1999-10-20>
< shipTo country =US>
< name> Alice Smith< / name>
< street> 123枫叶街< / street>
< city> Mill Valley< / city>
< state> CA< / state>
< zip> 90952< / zip>
< / shipTo>
< billTo country =US>
< name>罗伯特史密斯< / name>
< street> 8橡树大道< / street>
<城市>旧城区< / city>
< state> PA< / state>
< zip> 95819< / zip>
< / billTo>
< comment>快点,我的草坪正在狂野!< / comment>
<项目>
< item partNum =872-AA>
< productName>割草机< / productName>
<数量> 1< /数量>
< USPrice> 148.95< / USPrice>
< comment>确认这是电动< / comment>
< / item>
< item partNum =926-AA>
< productName>婴儿监护仪< / productName>
<数量> 1< /数量>
< USPrice> 39.98< / USPrice>
< shipDate> 1999-05-21< / shipDate>
< / item>
< / item>
< / purchaseOrder>

RoundtripTest

源对象:
<?xml version =1.0encoding =UTF-8standalone =yes?>
< purchaseOrder orderDate =1999-10-20Hjid =1>
< shipTo country =USHjid =2>
< name> Alice Smith< / name>
< street> 123枫叶街< / street>
< city> Mill Valley< / city>
< state> CA< / state>
< zip> 90952< / zip>
< / shipTo>
< billTo country =USHjid =1>
< name>罗伯特史密斯< / name>
< street> 8橡树大道< / street>
<城市>旧城区< / city>
< state> PA< / state>
< zip> 95819< / zip>
< / billTo>
< comment>快点,我的草坪正在狂野!< / comment>
<项目Hjid =1>
< item partNum =872-AAHjid =1>
< productName>割草机< / productName>
<数量> 1< /数量>
< USPrice> 148.95< / USPrice>
< comment>确认这是电动< / comment>
< / item>
< item partNum =926-AAHjid =2>
< productName>婴儿监护仪< / productName>
<数量> 1< /数量>
< USPrice> 39.98< / USPrice>
< shipDate> 1999-05-21< / shipDate>
< / item>
< / item>
< / purchaseOrder>

RoundtripTest

结果对象:
<?xml version =1.0encoding =UTF-8standalone =yes?>
< purchaseOrder orderDate =1999-10-20Hjid =1>
< shipTo country =USHjid =2>
< name> Alice Smith< / name>
< street> 123枫叶街< / street>
< city> Mill Valley< / city>
< state> CA< / state>
< zip> 90952< / zip>
< / shipTo>
< billTo country =USHjid =1>
< name>罗伯特史密斯< / name>
< street> 8橡树大道< / street>
<城市>旧城区< / city>
< state> PA< / state>
< zip> 95819< / zip>
< / billTo>
< comment>快点,我的草坪正在狂野!< / comment>
<项目Hjid =1>
< item partNum =872-AAHjid =1>
< productName>割草机< / productName>
<数量> 1< /数量>
< USPrice> 148.95< / USPrice>
< comment>确认这是电动< / comment>
< / item>
< item partNum =926-AAHjid =2>
< productName>婴儿监护仪< / productName>
<数量> 1< /数量>
< USPrice> 39.98< / USPrice>
< shipDate> 1999-05-21< / shipDate>
< / item>
< / item>
< / purchaseOrder>

RoundtripTest

检查文档标识。
RoundtripTest

完成测试示例[po.xml]。
RoundtripTest

完成测试样本。
RoundtripTest

测试运行:1,失败:0,错误:0,跳过:0,流逝时间:2.552秒

结果:

测试运行:1,失败:0,错误:0,跳过:0

[信息]
[信息] --- maven-jar-plugin:2.4:jar默认jar)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO]构建jar:C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples -po-initial-0.5.6\target\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar
[信息]
[信息] --- maven-install -plugin:2.4:install(default-install)@ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO]安装C:\Projects\workspaces\hj3\dist\ hyperjaxb3-ejb-samples-po-initial-0.5.6\target\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar到C:\ Repository \org\jvnet\hyperjaxb3 \hyperjaxb3-ejb-samples-po-initial-maven\0.5.6\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar
[INFO] Install将C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\pom.xml复制到C:\ Repository\org\jvnet\hyperjaxb3 \hyperjaxb3-ejb-samples-po-initial-maven\0.5.6\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.pom
[INFO] ------ -------------------------------------------------- ----------------
[信息]建立成功
[信息] ------------------ -------------------------------------------------- ----
[信息]总时间:12.100 s
[信息]完成于:2014-10-09T00:42:10 + 01:00
[INFO]最终记忆:22M / 96M
[INFO] ----------------------------------------- -------------------------------

完整的mvn clean install -X日志是此处



所以我希望你能看到,它完美无缺。请发布 mvn clean install -X ,也许你做错了什么。



现在,关于你的问题,这里是MySQL的例子:

https://github.com/highsource/hyperjaxb3/tree/master/ejb/tests/po-mysql



这个项目包括一个hbm2ddl代的片段:



https://github.com/highsource/hyperjaxb3/tree/master/ejb/tests/issues



hbm2ddl被注释掉了一些理由,不知道它是否有效,但它应该给出方向。


I am using hyperjaxb to generate Java classes from an xsd file. How can I configure it to generate hibernate annotations, and to trigger hbm2ddl to create a MySQL database with tables for the generated classes?

I downloaded the purchase order sample for hibernate from this link, then navigated to the target directory in cmd.exe and ran mvn clean install, but the resulting folders did not contain any java classes, and this also did not contain any hibernate/MySQL. I would like to get a working example that creates everything from a downloaded xsd file so that I can just plug my own xsd file into the code and have all the java/hibernate/mysql be autogenerated. That way I can spend my time tweaking my xsd file so that the resulting java/hibernate/MySQL is what I need it to be.

A code example or step by step instructions would be really helpful. I am using eclipse.


**EDIT: **

The answer to this question came after posting a few other questions. To find the complete answer to this question, you will need to review the answers to those other questions, in particular, the one at this link.

解决方案

UPDATE

Finally it appeared that the OP was looking for generated classes in the root directory of the project insteadof target\generated-source\xjc, despite the tutorial clearly states where to look:

If you browse the target/generated-sources/xjc directory, you'll find few generated java files, for instance PurchaseOrderType.java.


I don't understand it when you say that nothing is generated. I've just rechecked it, everything works fine.

My steps are:

  • Download hyperjaxb3-ejb-samples-po-initial-0.5.6-maven-src.zip
  • Unzip
  • Go to hyperjaxb3-ejb-samples-po-initial-0.5.6
  • mvn clean install

Here's what I get:

[INFO] ------------------------------------------------------------------------
[INFO] Building Hyperjaxb3 Samples [po-initial:maven] 0.5.6
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Deleting C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target
[INFO] 
[INFO] --- maven-hyperjaxb3-plugin:0.6.0:generate (default) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Sources are not up-to-date; XJC execution will be executed.
[WARNING] According to the Java Persistence API specification, section 2.1, entities must be top-level classes:
"The entity class must be a top-level class."
Your JAXB model is not customized as with top-level local scoping, please use the <jaxb:globalBinding localScoping="toplevel"/> global bindings customization.
        org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin

[WARNING] According to the Java Persistence API specification, section 2.1, entities must implement the serializable interface:
"If an entity instance is to be passed by value as a detached object
(e.g., through a remote interface), the entity class must implement
 the Serializable interface."
Your JAXB model is not customized as serializable, please use the <jaxb:serializable/> global bindings customization element to make your model serializable.
        org.jvnet.hyperjaxb3.ejb.plugin.EjbPlugin

[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 5 source files to C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 5 source files to C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Surefire report directory: C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running RoundtripTest
Detected [file:/C:/Projects/workspaces/hj3/dist/hyperjaxb3-ejb-samples-po-initial-0.5.6/target/classes/META-INF/persistence.xml].
    RoundtripTest

Loading entity manager factory properties.
    RoundtripTest

Loading entity manager factory properties from [file:/C:/Projects/workspaces/hj3/dist/hyperjaxb3-ejb-samples-po-initial-0.5.6/target/test-classes/persistence.properties].
    RoundtripTest

Testing samples.
    RoundtripTest

Sample directory [C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\src\test\samples].
    RoundtripTest

Testing sample [po.xml].
    RoundtripTest

Unmarshalling.
    RoundtripTest

Opening session.
    RoundtripTest

Saving the object.
    RoundtripTest

Opening session.
    RoundtripTest

Loading the object.
    RoundtripTest

Closing the session.
    RoundtripTest

Initial object:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchaseOrder orderDate="1999-10-20">
    <shipTo country="US">
        <name>Alice Smith</name>
        <street>123 Maple Street</street>
        <city>Mill Valley</city>
        <state>CA</state>
        <zip>90952</zip>
    </shipTo>
    <billTo country="US">
        <name>Robert Smith</name>
        <street>8 Oak Avenue</street>
        <city>Old Town</city>
        <state>PA</state>
        <zip>95819</zip>
    </billTo>
    <comment>Hurry, my lawn is going wild!</comment>
    <items>
        <item partNum="872-AA">
            <productName>Lawnmower</productName>
            <quantity>1</quantity>
            <USPrice>148.95</USPrice>
            <comment>Confirm this is electric</comment>
        </item>
        <item partNum="926-AA">
            <productName>Baby Monitor</productName>
            <quantity>1</quantity>
            <USPrice>39.98</USPrice>
            <shipDate>1999-05-21</shipDate>
        </item>
    </items>
</purchaseOrder>

    RoundtripTest

Source object:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchaseOrder orderDate="1999-10-20" Hjid="1">
    <shipTo country="US" Hjid="2">
        <name>Alice Smith</name>
        <street>123 Maple Street</street>
        <city>Mill Valley</city>
        <state>CA</state>
        <zip>90952</zip>
    </shipTo>
    <billTo country="US" Hjid="1">
        <name>Robert Smith</name>
        <street>8 Oak Avenue</street>
        <city>Old Town</city>
        <state>PA</state>
        <zip>95819</zip>
    </billTo>
    <comment>Hurry, my lawn is going wild!</comment>
    <items Hjid="1">
        <item partNum="872-AA" Hjid="1">
            <productName>Lawnmower</productName>
            <quantity>1</quantity>
            <USPrice>148.95</USPrice>
            <comment>Confirm this is electric</comment>
        </item>
        <item partNum="926-AA" Hjid="2">
            <productName>Baby Monitor</productName>
            <quantity>1</quantity>
            <USPrice>39.98</USPrice>
            <shipDate>1999-05-21</shipDate>
        </item>
    </items>
</purchaseOrder>

    RoundtripTest

Result object:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchaseOrder orderDate="1999-10-20" Hjid="1">
    <shipTo country="US" Hjid="2">
        <name>Alice Smith</name>
        <street>123 Maple Street</street>
        <city>Mill Valley</city>
        <state>CA</state>
        <zip>90952</zip>
    </shipTo>
    <billTo country="US" Hjid="1">
        <name>Robert Smith</name>
        <street>8 Oak Avenue</street>
        <city>Old Town</city>
        <state>PA</state>
        <zip>95819</zip>
    </billTo>
    <comment>Hurry, my lawn is going wild!</comment>
    <items Hjid="1">
        <item partNum="872-AA" Hjid="1">
            <productName>Lawnmower</productName>
            <quantity>1</quantity>
            <USPrice>148.95</USPrice>
            <comment>Confirm this is electric</comment>
        </item>
        <item partNum="926-AA" Hjid="2">
            <productName>Baby Monitor</productName>
            <quantity>1</quantity>
            <USPrice>39.98</USPrice>
            <shipDate>1999-05-21</shipDate>
        </item>
    </items>
</purchaseOrder>

    RoundtripTest

Checking the document identity.
    RoundtripTest

Finished testing sample [po.xml].
    RoundtripTest

Finished testing samples.
    RoundtripTest

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.552 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Building jar: C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ hyperjaxb3-ejb-samples-po-initial-maven ---
[INFO] Installing C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\target\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar to C:\Repository\org\jvnet\hyperjaxb3\hyperjaxb3-ejb-samples-po-initial-maven\0.5.6\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.jar
[INFO] Installing C:\Projects\workspaces\hj3\dist\hyperjaxb3-ejb-samples-po-initial-0.5.6\pom.xml to C:\Repository\org\jvnet\hyperjaxb3\hyperjaxb3-ejb-samples-po-initial-maven\0.5.6\hyperjaxb3-ejb-samples-po-initial-maven-0.5.6.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.100 s
[INFO] Finished at: 2014-10-09T00:42:10+01:00
[INFO] Final Memory: 22M/96M
[INFO] ------------------------------------------------------------------------

Full mvn clean install -X log is here.

So I hope you see, it works perfectly. Please post you mvn clean install -X, maybe you do something wrong.

Now, concerning your question, here's the MySQL example:

https://github.com/highsource/hyperjaxb3/tree/master/ejb/tests/po-mysql

This project includes a snippet of hbm2ddl generation:

https://github.com/highsource/hyperjaxb3/tree/master/ejb/tests/issues

The hbm2ddl is commented out for some reason, not sure if it works, but it should give the direction.

这篇关于配置hyperjaxb来创建hibernate映射和mysql数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆