【问题标题】:HYPERJAXB - DTYPE column length increase and table_name formed very lengthHYPERJAXB - DTYPE 列长度增加并且 table_name 形成很长
【发布时间】:2013-10-26 18:42:14
【问题描述】:

我正在使用 HYPERJAXB-3 -customized-toplink 并面临以下两个问题。请提供您的解决建议。

我的 XML 元素:例如:GeneralPref.CustomPref.Tradepref

1) 由于我的 XML 元素及其子元素的名称很长 例如:CREATE TABLE DOCUMENTMANAGEMENT_TRADESERVICEUTILITYSETUP ()

如何更改表名格式?

2) 根据http://java.sun.com/xml/ns/persistence/orm xsd,自动表列“DTYPE”的最大大小为 31。我在执行作业时收到以下错误消息。 3)我如何通过 persisence.properties 或其他一些配置更改“DTYPE”列大小

内部异常:java.sql.SQLException:ORA-12899:对于列“TEST”.“DMTRADINGPARTNERSETUP”.“DTYPE”的值太大(实际:40,最大值:31)

请做必要的事情。

【问题讨论】:

    标签: xml database jaxb hyperjaxb


    【解决方案1】:

    要增加DTYPE的长度,也可以在bindings.xjb中自定义

    例如。

    jaxb:bindings node="xs:complexType[@name='xxxx']">

    <hj:entity>
        <orm:discriminator-column length="127"/>
    </hj:entity>
    

    /jaxb:bindings>

    注意:hj:entity> 应该包含在 xsd 复杂类型中,而不是元素中。

    不好意思,不知道是什么问题,加上'

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。

      对于您的第一个问题,我认为您可以添加一个自定义 bingding.xjb 文件,该文件自定义您的列名少于 30 个长度。

      例如。 添加

      <xmlns:hj="http://hyperjaxb3.jvnet.org/ejb/schemas/customizations" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" jaxb:extensionBindingPrefixes="hj orm">

      在全局绑定中

      &lt;jaxb:bindings node="xs:complexType[@name='xxxx']//xs:element[@name='xxx']"&gt;

      `<hj:basic>`
      
          `<orm:column name="xxxx" length="1000"/>`
      `</hj:basic>`
      

      &lt;/jaxb:bindings&gt;

      但是,对于您的第二个问题,我还没有弄清楚,因为我不知道在哪里自定义 DTYPE,因为 DTYPE 是由 hyperjaxb 而不是原始 XSD 本身生成的。

      【讨论】:

        猜你喜欢
        • 2011-03-17
        • 2022-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多