gpt4 book ai didi

java - 在 hyperjaxb 中自定义 hibernate 属性

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:42 24 4
gpt4 key购买 nike

默认配置hyperjaxb正在创建导致 hibernate 的 hibernate 注释产生极其冗长的注释 SQL导致 SQLException 的语句最坏的情况是性能不佳,最好的情况是性能缓慢。具体来说,CascadeType.ALL设置似乎是默认的。如何覆盖默认设置,以便 CascadeType , FetchType ,其他参数是定制的吗?是否可以在全局级别设置这些默认变量,以便我不必更改 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>

最佳答案

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

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

这里是default customizations .

这是一个测试项目 customizes defaults .

例如,自定义多对一的默认级联看起来像(未经测试):

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

更多链接:

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

关于java - 在 hyperjaxb 中自定义 hibernate 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com