我在 hyperjaxb 中阅读了有关 fetchtype 的链接。从外观上看,似乎只能将 a 添加simpleType
fetch-type
到xsd
文件中,然后将fetch
属性添加到每个complexType
.
有人将如何自定义以下xsd
片段,以便下面底部生成的 java 方法具有fetchtype=lazy
注释?
<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>
这是应该说 fetchtype=lazy 的 Java 属性:
@ManyToOne(targetEntity = Code.class, cascade = {
CascadeType.ALL
})
@JoinColumn(name = "SOME_CODE1_P_0")
public Code getSomeCode1() {
return someCode1;
}
此外,如何具体(即使用什么特定语法)fetchtype
在所有方法中设置全局默认值,以便只需要覆盖某些属性?