我想在运行时将懒惰设置为“false”,但只设置为一种方法。 我可以吗?
this.getSession().createSQLQuery("select * from customers....")....
注意:我使用的是 createSQLQuery 而不是 createCriteria。
此处为 CustomerMapping.xml:
<hibernate-mapping>
<class name="com.example.entities.customers.Customer"
table="CUSTOMERS">
<id name="id" type="long">
<column name="ID" />
<generator class="sequence">
<param name="sequence">seq_customers</param>
</generator>
</id>
<property name="name" type="String">
<column name="NAME_C" />
</property>
<many-to-one name="address"
class="com.example.entities.Address" fetch="select"
cascade="all">
<column name="ADDRESS_ID" />
</many-to-one>
</class>
</hibernate-mapping>
我想将 Address 的 lazy 设置为 false。
我必须这样做,因为这个方法返回一个客户列表(带地址),当我迭代这个列表并打印它时非常慢,因为懒惰设置为 true(默认)。
最佳答案
您使用 SQL 而不是 HQL 有什么原因吗?如果可能,我会在使用 hibernate 时远离 SQL 语句。
我会在 HQL 中这样实现它:
from Customer c
join fetch c.address
join fetch
让 Customers address 不再懒惰。
关于java - 我可以在运行时更改 create SQL Query 的 Lazy 属性值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866003/