Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Hibernate 3仅在调用其getter时检索值_Java_Hibernate_Jakarta Ee - Fatal编程技术网

Java 如何让Hibernate 3仅在调用其getter时检索值

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 3映射表和一个中间文本字段。该表有几千条记录,除了中间的文本字段外,其他字段根本不包含太多数据

除了很少使用的中间文本字段外,整个表都需要加载到内存中

虽然我听说过lazy fetching注释,但是这段遗留代码使用的是Hibernate XDoclet,它在Hibernate属性定义中没有提到lazy fetching:


那么,是否有任何方法可以告诉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语句。

检查此项