2013-10-26 87 views
0

我使用HYPERJAXB-3-customized-toplink並面臨以下兩個問題。請提供您的建議來解決。HYPERJAXB - DTYPE列長度增加和table_name形成非常長度

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

1)表/約束名稱與非常冗長名(Oracle支持僅30個字符)產生的,由於我的XML元素和它的具有子元素冗長名 例如:CREATE TABLE DOCUMENTMANAGEMENT_TRADESERVICEUTILITYSETUP()

如何更改表格名稱格式?

2)自動錶格欄'DTYPE'的最大尺寸爲31根據http://java.sun.com/xml/ns/persistence/orm xsd。執行作業時收到以下錯誤消息。 3)如何更改該「DTYPE」通過persisence.properties柱尺寸或一些其它configutaion

內部異常:java.sql.SQLException中:ORA-12899:值太大,列「TEST」「DMTRADINGPARTNERSETUP」 。「DTYPE」(實際:40,最大值:31)

請做必要的事。

回答

0

我遇到了同樣的問題。

對於你的第一個問題,我認爲你可以添加一個自定義bingding.xjb文件來定製你的列名長度小於30。

例如。在全球綁定

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

`<hj:basic>` 

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

添加

<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>

但是,對於你的第二個問題,我還沒有想通了,因爲我不t知道在哪裏定製DTYPE,因爲DTYPE是由hyperjaxb生成的,而不是原來的XSD本身。

0

爲了提高DTYPE的長度,也可以自定義它bindings.xjb

如。

JAXB:綁定節點= 「XS:的complexType [@名稱= 'XXXX']」>

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

/JAXB:綁定>

注:HJ:實體>應包括在一個xsd複雜類型,而不是元素。

對不起,我不知道當我添加'<'+'j'時,這個詞是不可見的。