如何在hyperjaxb中将集合设置为@LazyCollection(LazyCollectionOption.FALSE)
?
以下是示例:我有一个xml节点ab
,它可以包含类型cd
的子节点列表或类型{{1的子节点列表}}。 ef
和cd
都只包含文字/字符串内容。我有一个xsd定义,我通过JAXB和hyperjaxb运行来创建带有数据库表的hibernate注释的java类。而不是设置fetchtype,如何让hyperjaxb为每个集合设置ef
?
xml看起来像:
@LazyCollection(LazyCollectionOption.FALSE)
或:
<ab>
<cd>Some thing</cd>
<cd>Another thing</cd>
</ab>
xsd看起来像:
<ab>
<ef>Some thing</ef>
<ef>Another thing</ef>
</ab>
生成的实体应如下所示:
<xs:complexType name="Ab">
<xs:sequence>
<xs:element name="cd" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ef" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
答案 0 :(得分:0)
@LazyCollection
或@org.hibernate.annotations.LazyCollection
(完全限定格式)是专有的Hibernate注释,而不是JPA标准。
Hyperjaxb仅支持标准的JPA 1.0和2.0注释,因此不支持@LazyCollection
。
Optons:
@LazyCollection
添加到目标属性。但是,您需要自定义要显示@LazyCollection
的每个属性。