我有一个与B类有一对多关系的A类。它看起来像这样:
@OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
@JoinColumn(name = "B_A_ID", referencedColumnName = "A_ID",
insertable = false, updatable = false)
private List<B> bElements;
由于this EclipseLink错误,我需要将此属性的批量提取类型更改为EXISTS或IN,但我没有接受类的源代码,因此我决定不使用@BatchFetchType注释通过我的orm.xml文件来完成它。
<entity class="somepackage.A">
<attributes>
<one-to-many name="bElements" fetch="LAZY">
<join-column name="B_A_ID" referenced-column-name="A_ID" insertable="false" updatable="false"/>
<cascade>
<cascade-refresh/>
</cascade>
<batch-fetch type="EXISTS"/>
</one-to-many>
</attributes>
</entity>
问题是它不起作用。我可以改变映射的其他属性,例如。将类型提取到EAGER,但是当我尝试将批量提取类型更改为EXISTS或IN时,它似乎被忽略了。造成这种情况的原因是什么?
答案 0 :(得分:0)
我猜您使用的是JPA orm.xlm而不是EclipseLink orm.xlm
请检查您的xmlns补丁,它应该为http://www.eclipse.org/eclipselink/xsds/persistence/orm 不 http://java.sun.com/xml/ns/persistence/orm