在导出excel时Hibernate产生的SQL的效率问题

问题描述

我在导出2000条记录的excel时,Hibernate产生了2001条SQL....郁闷。我要导出系统中所有的User,该User关联了机构表UserOrg.我要导出的字段有:User.name 和 UserOrg.name。于是Hibernate先用一条Sql取出2000个User,然后产生了2000条语句去取UserOrg。。。。User与Userorg是多对一的关系。感觉这样是不是效率方面很有问题...请问大家有什么好方法吗? 问题补充:<div class="quote_title">aabcc 写道</div><div class="quote_div">left join</div><br /><br />select User from User User ,UserOrg UserOrg where ......<br /><br />这样写还是会造成2001条SQL吧?<br />

解决方案

那就设成 true,然后用 left join fetch 去 查,你会看到 Hibernate帮你生成的SQL 是 一条 left join on 的,然后 你的UserOrg里面 有值
解决方案二:
你不会把 lazy 设成 false了吧?
解决方案三:
上面写错了select User from User u left join fetch u.UserOrg uo where u.UserOrg.uoid = uo.uoid
解决方案四:
select User from User u left join u.UserOrg uo where u.uoid = uo.uoid
解决方案五:
left join

时间: 2024-10-24 22:10:53

在导出excel时Hibernate产生的SQL的效率问题的相关文章

excel导出-java导出excel时的数据换行问题

问题描述 java导出excel时的数据换行问题 java中做页面中表单的excel导出功能(表单数据通过sql查询),表单的其中一列是通过字符串的拼接形成的,为了页面的美观,在sql中拼接该字符串时,根据分隔号拼接标签,使其可以在页面上显示出多条记录分行的效果.但是由于excel导出用的sql和页面展示用的sql是同一句,因此在导出的excel中该列的显示会出现xxxxxxx的情况. 目前是处理方式是通过同样的方法拼接一个字段,但是不拼接,在页面显示中使用拼接了的,在导出时取的数据来自于不拼接

asp.net2.0中导出EXCEL时内容为什么始终为空?[高分]

问题描述 asp.net2.0中导出EXCEL时内容为什么始终为空?实现方式,首先生成HTML摸板[格式如下,内容太长删除了一些]privateStringBuilderpHead=newStringBuilder();privateStringBuilderpBody=newStringBuilder();privateStringBuilderpFoot=newStringBuilder();publicRptSpareQuery(){pHead.Append("<htmlxmlns:

birt 导出excel时,有38个字段,导出的excel文件中数据都叠在一起,格式非常难看

问题描述 birt导出excel时,有38个字段,导出的excel文件中数据都叠在一起,格式非常难看,该问题怎么解决.thx 解决方案 解决方案二:给你看看我以前servlet导出Excel的例子publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("gbk");Employ

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

Ext.NET 导出Excel时不认列

问题描述 我在将Ext.Net的GridPanel控件导出Excel文件时导出的Excel不认列,将一整行的数据都放在了一个单元格里面.方法是使用的Ext官方的例子.varsaveData=function(){GridData.setValue(Ext.encode(gvV_Wms_LocStock.getStore().reader.jsonData));} 前台页面<formid="form1"runat="server"><divrunat

devexpress-DevExpress控件在导出Excel时怎么分成Sheet表来导出

问题描述 DevExpress控件在导出Excel时怎么分成Sheet表来导出 DevExpress控件在导出Excel时用的是 Printingsystem的导出ExportToXls方法导出的,只能将整个界面按一个Excel工作表来导出!! 界面上有三个grid(每一个加载一个界面作为数据控件),我想要做的是在导出的时候,每一个控件导出一个工作表,在一个Excel工作薄里面,,导出报表的格式按,控件显示的格式来,不知道各位大神有什么办法没有,,小弟在这里跪求了,,,谢谢每一位出主意的好心人

flex-【Flex as3xls】导出Excel时“001”变成1

问题描述 [Flex as3xls]导出Excel时"001"变成1 求具体操作代码,目前可以写入"'001",但是Excel并没有强制转换成文本形式显示. 解决方案 Flex导出Excel (as3xls)flash flex as3 类库 资料大全(看到此文时很激动...) 解决方案二: 自己加一下单元格格式为文本格式,或者加一个上逗号,一样的结果.

导出excel 时 只要不用下载工具迅雷直接下载一切正常,但当使用下载工具时导出的EXCEL就为空内容,

问题描述 导出excel时,我用这个下载:StringBuildersb=newStringBuilder();System.IO.StringWritersw=newSystem.IO.StringWriter(sb);System.Web.UI.HtmlTextWriterhw=newSystem.Web.UI.HtmlTextWriter(sw);Response.Clear();Response.Buffer=true;//Response.AppendHeader("Content-D

js导出excel时 为什么时间都变成######号了?谢谢指点!

问题描述 js导出excel时 为什么时间都变成解决方案二: 解决方案三:号了?谢谢指点! 解决方案 将excel显示时间的单元格宽度设置的宽一些就可以了.