我在XML持久性文件中定义了一个实体,如下所示。有问题的实体/表有100多个字段,但我只需要少数几个字段。而不是用fetch =" LAZY"标记我不需要的所有字段。属性,我可以为这个表的所有列设置默认的提取策略是LAZY,只标记我需要的那些作为fetch =" EAGER" ?
我通过Open JPA文档here查看,但我没有看到任何对此的引用。这可能在XML实体映射中吗?
<entity class="Users">
<table schema="dbo" name="Users"/>
<attributes>
<id name="id">
<column name="Id" column-definition="nchar" length="18"/>
</id>
<basic name="about" fetch="LAZY">
<column name="About" column-definition="nvarchar" length="1000"/>
</basic>
<basic name="accountId">
<column name="AccountId" column-definition="nchar" length="18"/>
</basic>
<basic name="alias">
<column name="Alias" column-definition="nvarchar" nullable="false" length="8"/>
</basic>
<basic name="auditCounter">
<column name="AuditCounter"/>
</basic>
<basic name="auditPercent">
<column name="AuditPercentc"/>
</basic>
<basic name="auditTarget">
<column name="Audit"/>
</basic>
<basic name="CenterId">
<column name="CenterId" column-definition="nchar" length="18"/>
</basic>
</attributes>
</entity>
答案 0 :(得分:0)
实体图似乎就是你所追求的。
https://docs.oracle.com/javaee/7/tutorial/persistence-entitygraphs001.htm
上述链接意味着您可以标记需要提取的字段,然后在查询中使用空的加载图。
或者,您可以使用获取图表,明确列出您感兴趣的属性,以基于每个查询控制获取模式。
关于实体图规范的令人困惑的部分是,基本字段也需要明确标记为急切提取,尽管如此(至少基于注释的配置),{{1}的默认值} property已经Basic.fetch
。我不知道基于XML的配置会有什么样的行为,因此我建议您使用fetch graph方法并确保它确实有效。