请求帮忙解决hibernate调用存储过程时出现的问题

chengsheng0 2008-08-19 11:09:45
我使用HibernateTemplate调用存储过程时出现了一个问题,就是没有给实体类的其它属性赋值,而只有ID属性是有值的,
感觉像是延迟检索一样。
配置文件如下:
<hibernate-mapping>
<class name="com.bean.ResultBean"
<id name="logId" column="LOGID">
<generator class="native"/>
</id>
</class>
<sql-query name="P_SCANLOG" callable="true">
<return alias="sms" class="com.bean.ResultBean">
<return-property name="logId" column="LOGID"/>
<return-property name="status" column="STATUS"/>
<return-property name="content" column="CONTENT"/>
<return-property name="spid" column="SPID"/>
<return-property name="params" column="PARAMS"/>
</return>
{call P_SCANLOG(?)}
</sql-query>
</hibernate-mapping>

ResultBean的就不贴了,就是上面的这些属性加上getter和setter方面。

java代码如下:
List list = hibernateTemplate.findByNamedQuery("P_SCANLOG");
发现list中的ResultBean对象只有logId属性是有值的,其它属性的值均为null。

why? thank you!
...全文
100 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengsheng0 2008-08-20
  • 打赏
  • 举报
回复
自己回复一下吧。呵呵~
搞了半天原来是配置文件不对,必须在class元素中也声明属性对应值。like this:
<hibernate-mapping>
<class name="com.bean.ResultBean"
<id name="logId" column="LOGID">
<generator class="native"/>
</id>
<property name="status" column="STATUS"/>
.......
<proeprty name="params" column="PARAMS"/>
</class>
<sql-query name="P_SCANLOG" callable="true">
<return alias="sms" class="com.bean.ResultBean">
<return-property name="logId" column="LOGID"/>
<return-property name="status" column="STATUS"/>
<return-property name="content" column="CONTENT"/>
<return-property name="spid" column="SPID"/>
<return-property name="params" column="PARAMS"/>
</return>
{call P_SCANLOG(?)}
</sql-query>
</hibernate-mapping>

如果没有在class元素中声明属性,那么该属性的值就无法赋值(setter),值就为null了。


67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧