首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HYPERJAXB - DTYPE柱长度增加,table_name形成极长

HYPERJAXB - DTYPE柱长度增加,table_name形成极长
EN

Stack Overflow用户
提问于 2013-10-27 02:42:15
回答 2查看 299关注 0票数 0

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

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

1)由于我的XML元素及其子元素的名称很长,所以生成的表/约束名称非常长(oracle仅支持30个字符),例如: 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)

请做必要的事情。

EN

回答 2

Stack Overflow用户

发布于 2013-12-03 12:49:51

我遇到了同样的问题。

对于您的第一个问题,我认为您可以添加一个自定义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">

在全局绑定中

<jaxb:bindings node="xs:complexType[@name='xxxx']//xs:element[@name='xxx']">

代码语言:javascript
复制
`<hj:basic>`

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

</jaxb:bindings>

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

票数 0
EN

Stack Overflow用户

发布于 2013-12-05 06:15:58

要增加DTYPE的长度,还可以在bindings.xjb中对其进行自定义

例如:

jaxb:bindings node=“xs:”>@name=‘xxxx’jaxb

代码语言:javascript
复制
<hj:entity>
    <orm:discriminator-column length="127"/>
</hj:entity>

/jaxb:bindings>

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

对不起,我不知道有什么问题,当我添加'<‘+ 'j’时,这个词将是不可见的。

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

https://stackoverflow.com/questions/19610480

复制
相关文章

相似问题

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