1

的默认配置hyperjaxb是创建休眠注释,这会导致hibernate注释产生令人难以置信的冗长SQL语句,SQLException最坏的结果是 s,最好的情况是性能下降。具体来说,该CascadeType.ALL设置似乎是默认设置。如何覆盖默认设置,以便自定义设置 、 和其他参数CascadeTypeFetchType是否可以在全局级别设置这些默认变量,这样我就不必更改我的 schema.xsd 文件中数百个引用中的每一个?

这是一个例子。 Hyperjaxb正在生成以下hibernate注释:

@ManyToOne(targetEntity = Code.class, cascade = {
    CascadeType.ALL
})
@JoinColumn(name = "SOME_CODE1_P_0")
public Code getSomeCode1() {
    return someCode1;
}

来自以下架构片段:

<xs:complexType name="SomeTypeName">
    <xs:sequence>
        <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="someCode1" type="Code" minOccurs="0"/>
        <xs:element name="someCode2" type="Code" minOccurs="0"/>
        <xs:element name="someCode3" type="Code" minOccurs="0"/>
        <xs:element name="someCode4" type="Code" minOccurs="0"/>
        <xs:element name="someCode5" type="Code" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="Code">
    <!--<xs:sequence>elements with nested data types omitted for simplicity</xs:sequence>-->
    <xs:attribute name="code" type="xs:string" use="optional"></xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="optional"></xs:attribute>
</xs:complexType>
4

1 回答 1

0

您可以根据需要自定义默认映射:

http://confluence.highsource.org/display/HJ3/Customizing+default+mappings

以下是默认自定义

这是一个自定义 defaults的测试项目。

例如,自定义默认级联many-to-one看起来像(未经测试):

<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
    <hj:persistence>
        <hj:default-many-to-one>
            <!-- So what do you think to be a reasonable default mapping? -->
            <orm:cascade>
                <orm:cascade-persist/>
            </orm:cascade>
        </hj:default-many-to-one>
    </hj:persistence>
</jaxb:bindings>

更多链接:

请检查文档。您可以(但不必)自定义很多.

于 2014-10-27T22:52:04.880 回答