考虑到速度问题,我现在想调用存储过程来做级联查询,但是这样会遇到一个问题,比如两个表:User表和Book表,Book表中的userid参考User的主键userid,这个在做反向工程之后生成的model类中,User类中将会有一个关于book的set类型的私有成员变量,那么我在Userinfo.hbm.xml中应该如何配置以组装从存储过程中查询出的内容呢?我看见网上有这样的资料 <sql-query name="getUserList" callable="true">
  <return alias="user" class="User">
   <return-property name="userid" column="userid"/>
   <return-property name="name" column="name"/>
   <return-property name="blog" column="blog" />
  </return>
  {call getUserList()}
 </sql-query>在该文件中需注意<sql-query…></sql-query>中的这段代码,调用的存储过程在其中定义,并定义了调用存储过程后将记录组装成User对象,同时对记录的字段与对象的属性进行相关映射
但是级联情况应该怎么办呢?急求,在线等!

解决方案 »

  1.   

    还有,如何在命令行下调用带有参数的存储过程比如我创建了这样一个存储过程delimiter $$
    drop procedure if exists getUserInfoByName;
    create procedure getUserInfoByName(IN uname varchar(45))
    begin
    select * from userinfo where username=uname;
    end $$;如何在命令行下用call getUserInfoByName();里面的参数怎么写啊?
      

  2.   

    具体问题不太懂还有那个user 对 book 的Set集合(一对多)关联,是否真的需要。
    我只想确定,你的这个用存储过程查询的方式所提高的效率对整个系统影响很大吗,既然你的系统用上了Hibernate我觉得,一般也可以容忍级联关联的存在
      

  3.   

    我以前做项目也没用过存储过程,但网上很多地方都说用存储过程快很多,而且节省流量,所以想在现在的项目中用存储过程试试,实在不行就不用了。现在问题就在于由于级联的存在,hibernate的反向工程把某些属性列映射成了set,而不是简单的数据类型,但是存储过程是没法查询出set结果的,配置文件中也不知该怎么配置。