我想将lazy设置为“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>
我想将LAYLY设置为FALSE作为地址。
我必须这样做,因为这个方法返回一个客户列表(带有地址),当我迭代这个列表并打印它非常慢的时候,lazy被设置为真(缺省情况下)。
1条答案
按热度按时间jbose2ul1#
您使用SQL而不是HQL有什么原因吗?在可能的情况下,我会在使用Hibernate时避免使用SQL语句。
我会这样在HQL中实现它:
join fetch
让客户地址不再偷懒。