【问题标题】:How do I tell hyperjaxb3 what to use as primary key?如何告诉 hyperjaxb3 使用什么作为主键?
【发布时间】:2015-03-18 22:27:52
【问题描述】:

我正在做一个将一堆 xml 导入 mysql 数据库的项目。我发现工具 hyperjaxb3 作为 maven 插件工作并生成 jpa / jaxb 注释的 java 类,我可以使用这些类来编组 xml 并将其吸入,但它会创建自己的主键字段。我如何摆脱它以支持架构中存在的字段?

【问题讨论】:

    标签: hyperjaxb


    【解决方案1】:

    这在文档https://java.net/projects/hyperjaxb/sources/svn/content/trunk/www/doc/reference/en/pdf/reference.pdf中有描述

    特别是下面引用的部分:

    2.2.2.1。自定义标识符属性 标识符属性是可定制的。您可以强制 Hyper-JAXB 使用现有属性作为标识符,而不是生成新的 idInternal 属性。为此,请将 @hyperjaxb.hibernate.id 包含到属性 javadoc 注释中(来自简单测试):

    <xsd:complexType name="EntryType"> <xsd:sequence><!-- ... --></xsd:sequence> >
    <xsd:attribute name="id" type="xsd:string"> <xsd:annotation> <xsd:appinfo>
    <jaxb:property>     
    <jaxb:javadoc> @hyperjaxb.hibernate.id unsaved-value="null" generator-class="uuid.hex"
    
    </jaxb:javadoc>
    </jaxb:property>
    </xsd:appinfo>
    </xsd:annotation> </xsd:attribute> </xsd:complexType>
    

    如果您使用需要参数化的 id 生成器,请在 @hyperjaxb.hibernate.generator-param 中包含所需的参数。

    【讨论】:

    • 感谢您的回答!问了这个之后,我发现由于项目设计的改变,我不得不从 hyperjaxb 切换并自己解析 xml
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2019-09-14
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2015-09-12
    • 1970-01-01
    相关资源
    最近更新 更多