gpt4 book ai didi

java - 我可以在运行时更改 create SQL Query 的 Lazy 属性值吗?

转载 作者:行者123 更新时间:2023-11-30 11:26:19 25 4
gpt4 key购买 nike

我想在运行时将懒惰设置为“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com