Java 如何让Hibernate 3仅在调用其getter时检索值
我有一个Hibernate 3映射表和一个中间文本字段。该表有几千条记录,除了中间的文本字段外,其他字段根本不包含太多数据 除了很少使用的中间文本字段外,整个表都需要加载到内存中 虽然我听说过lazy fetching注释,但是这段遗留代码使用的是Hibernate XDoclet,它在Hibernate属性定义中没有提到lazy fetching:Java 如何让Hibernate 3仅在调用其getter时检索值,java,hibernate,jakarta-ee,Java,Hibernate,Jakarta Ee,我有一个Hibernate 3映射表和一个中间文本字段。该表有几千条记录,除了中间的文本字段外,其他字段根本不包含太多数据 除了很少使用的中间文本字段外,整个表都需要加载到内存中 虽然我听说过lazy fetching注释,但是这段遗留代码使用的是Hibernate XDoclet,它在Hibernate属性定义中没有提到lazy fetching: 那么,是否有任何方法可以告诉Hibernate仅在调用其getter时检索该值?Hibernate默认支持延迟抓取,除非exlplicity将其
那么,是否有任何方法可以告诉Hibernate仅在调用其getter时检索该值?Hibernate默认支持延迟抓取,除非exlplicity将其设置为急切抓取。 如果您想了解一些关于延迟抓取的知识,请参考 如果是属性laza加载,请尝试以下操作
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="db.hibernateSimple.Copay"
table="EHR_COPAY"
polymorphism="explicit"
>
<id
name="id"
column="COPAY_ID"
type="long"
unsaved-value="null"
>
<generator class="sequence">
<param name="table">HIVAL</param>
<param name="column">NEXT</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-Copay.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="balance"
type="int"
column="balance"
length="10"
/>
<property
name="date"
type="java.lang.String"
column="OWNERSHIP_DATE"
/>
<property
name="comments"
type="java.lang.String"
column="comments"
lazy="true"
/>
<many-to-one
name="user"
class="db.hibernateSimple.User"
cascade="none"
outer-join="auto"
column="USER_ID_SEQ"
/>
海瓦尔
下一个
我从上面的内容中提取了一些想法,我猜我尝试在Hibernate属性上使用
lazy=true
,但它不起作用,Hibernate仍然会获取整个表,即使该属性没有get
ed
作为一种解决方法,我删除了Hibernate属性,并将其替换为getter中的JDBC查询和setter中的JDBC语句。检查此项