hibernate 存储过程返回值问题

问题描述

配置文件如下:<sql-queryname="getMergeableOrder"read-only="true"><returnclass="Order"alias="order"/><return-joinalias="ordresMerchandises"property="order.OrdresMerchandises"/><!--这里报错。。。--><!--<return-joinalias="merchandises"property="ordresMerchandises.Merchandises"/>--><![CDATA[execsp_getMergeableOrder]]></sql-query>由于Order和Merchandises是多对多的关系,表关系为Order-OrdresMerchandises-Merchandises,现在我是这样访问:foreach(OrderosinOrders){foreach(OrdresMerchandiseominos){om.Merchandise.....//由于Merchandise没有加载,会出现n+1次查询问题,有没有别的方法可以避免?}}

解决方案

解决方案二:
getOrdresMerchandise(){}你应该在这个方法里,用一个SQL语句拿到你需要的所有东西。当然,这个做法不是正规的编程方法,但如果效率成为主要瓶颈,那么不用管优雅不优雅了。
解决方案三:
学习!!
解决方案四:
这个是hibernate...?俺不太懂哦。。如果仅仅是想知道如何把这个延迟加载搞的恶心效果去掉你可以通过leftjoin把属性一起查询出来那就没啥问题了吧
解决方案五:
@老紫竹这里是执行一个存储过程,所有数据已经准备好,但是填充到对象时只能填充两级,即Order和Order.OrdresMerchandises

时间: 2024-10-23 06:45:07

hibernate 存储过程返回值问题的相关文章

求助: Hibernate如何没有列名的存储过程返回值

问题描述 Hibernate如何没有列名的存储过程返回值.我在数据库(informix)里用存储过程读取数据并返回值,但都没有列名.然后用Hibernate的执行原生sql语句的方法读取:===========================================...StringsqlProc="{callproc('2')}";session.createSQLQuery(sqlProc).addEntity(MyMapping.class).list();...====

mysql-VB 读取 MySql 存储过程返回值

问题描述 VB 读取 MySql 存储过程返回值 -- 我定义的存储过程如下,很简单的一个过程,并且在Cmd命令里面运行是正常的.USE appraisesystem;DROP procedure IF EXISTS protest; DELIMITER $$USE appraisesystem$$CREATE DEFINER=root@% PROCEDURE protest(Word varchar(100)out lens int)BEGINset lens=length(Word);END

Entity Framework 5.0 调用存储过程 返回值为什么是int类型

问题描述 用VS2012+EntityFramework5.0生成代码但是生成的存储过程返回值有问题为什么生成的存储过程返回值为int类型??存储过程中操作复杂最后返回几个字段值.publicvirtualintGetMenuByRID(Nullable<int>rID){varrIDParameter=rID.HasValue?newObjectParameter("RID",rID):newObjectParameter("RID",typeof(i

SqlServer获取存储过程返回值的实例_MsSql

1.OUPUT参数返回值 复制代码 代码如下: CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@o_id bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerid )VALUES (@o_buyerid )SET @o_id = @@IDENTITYENDEND 存储过程中获得方法: 复制代码 代码如下: DECLARE @o_buyerid i

PHP调用存储过程返回值不一致问题的解决方法分析_php技巧

本文实例讲述了PHP调用存储过程返回值不一致问题的解决方法.分享给大家供大家参考,具体如下: 今天遇一个同学聊存储过程返回值经常得到意外的值为null, 因为白天有事,晚上给做一个实验放在这里供有相应问题的同学查看一下. 存储过程: delimiter// createprocedureusp_s2(outpar1int) begin selectinet_ntoa(ip),portfromproxy_listlimit5; selectcount(*)intopar1fromproxy_lis

mysql 存储过程 释放-mysql 存储过程返回值 怎么释放

问题描述 mysql 存储过程返回值 怎么释放 带返回值的存储过程 每次执行后会返回一个变量一直存在于会话中 执行下一次查询的时候仍然能够访问上传的变量 call f(@o1); SELECT @o1; call f(@o2); SELECT @o1,@o2; call f(@o3); SELECT @o1,@o2,@o3; 要怎么释放掉呢?

嵌套存储过程返回值的调用

嵌套存储过程返回值的调用 create table test(id int identity(1,1),code varchar(8)) insert into test select 'aaaa' union select 'bbbb' go create procedure sp_test2  @id   int        output, @code varchar(8) output as begin     select @id=id,@code=code from test whe

获得存储过程返回值的方法(return的值)

存储过程 获得存储过程的返回值 System.Data.SqlClient.SqlConnection scon = new System.Data.SqlClient.SqlConnection("server=Netangel;uid=etopsUS;pwd=etops;database=etops");System.Data.SqlClient.SqlCommand scom = new System.Data.SqlClient.SqlCommand("",

整理sqlserver 级联更新和删除 c#调用存储过程返回值

整理一下级联更新和删除 c#调用返回值 use master go IF exists(select 1 from sysdatabases where name='temp') BEGIN DROP DATABASE temp END create database temp go use temp go --drop table ProductInfo create table ProductInfo ( ProductId int primary key , ProductName var