急问:Hibernate调用HibernateDaoSupport中的findByNamedQuery(hql)出错?

wingoal 2007-01-13 12:07:57
hbm.xml:
<hibernate-mapping>
<class name="com.esapro.icats.framework.pojo.Parameters" table="parameters" >
<id name="parametersid" type="java.lang.Integer">
<column name="parametersid" />
<generator class="native" />
</id>
<property name="paramtype" type="java.lang.String">
<column name="paramtype" length="20" not-null="true" />
</property>
<property name="paramkey" type="java.lang.String">
<column name="paramkey" length="15" not-null="true" />
</property>
<property name="paramvalue" type="java.lang.String">
<column name="paramvalue" length="65535" />
</property>
<property name="userid" type="java.lang.String">
<column name="userid" length="20" not-null="true" />
</property>
</class>
</hibernate-mapping>

-----------------------------------------------
业务层:

hql="from Parameters p where p.userid=? and p.paramtype=? and p.paramkey=?";
List list=getHibernateTemplate().findByNamedQuery(hql, new Object[]{"user","PREF-DEALVIEW","GENERAL"});

-----控制台error info:
com.esapro.icats.framework.base.BusinessException: Named query not known: from Parameters p where p.userid=? and p.paramtype=? and p.paramkey=? ; nested exception is org.hibernate.MappingException: Named query not known: from Parameters p where p.userid=? and p.paramtype=? and p.paramkey=?




...全文
1129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oxcow 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 wingoal 的回复:]
hbm.xml:
<hibernate-mapping>
<class name= "com.esapro.icats.framework.pojo.Parameters " table= "parameters " >
<id name= "parametersid " type= "java.la……
[/Quote]

把findByNamedQuery改成find
findByNamedQuery 执行的是预定义SQL,也就是在映射文件中使用
<sql-query name="sqlName"></sql-query>预先定义的SQL.

具体配置可以看下hibernate指南
小菜鸟的博客 2011-09-29
  • 打赏
  • 举报
回复
findByNamedQuery()这个方法是要在hbm.xml文件中配置的,但是却没有在配置文件中定义,所以报错了。
你可以这样解决
第1.你可以在配置文件里配置;
第2.你换个方法,使用createQuery()这个方法就可以了。
xdrs1314 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xdrs1314 的回复:]

hql= "from Parameters p where p.userid=? and p.paramtype=? and p.paramkey=? ";
List list=getHibernateTemplate().findByNamedQuery(hql, new Object[]{ "user ", "PREF-DEALVIEW ", "……
[/Quote]是写法,打成协防了。罪过!
xdrs1314 2011-09-29
  • 打赏
  • 举报
回复
hql= "from Parameters p where p.userid=? and p.paramtype=? and p.paramkey=? ";
List list=getHibernateTemplate().findByNamedQuery(hql, new Object[]{ "user ", "PREF-DEALVIEW ", "GENERAL "});

上面的hql协防没有错,我只是怀疑你的p.userid中的值类型是varchar的值"user ",是不是int类型的?
小菜鸟的博客 2011-09-29
  • 打赏
  • 举报
回复
from Parameters where userid=? and paramtype=? and paramkey=?
试试
zljjava 2011-09-28
  • 打赏
  • 举报
回复
要在hbm.xml文件中配置
wingoal 2007-01-15
  • 打赏
  • 举报
回复
在线等啊!!!
源码直接下载地址: https://pan.quark.cn/s/8ac6a8c064f8 Intellij Idea 12 外部jar包导入操作指南 Intellij Idea 12作为一款功能丰富且被广泛采纳的集成开发环境(IDE),为开发者提供了多种便利的工具以支持快速且高效的软件开发与调试工作。在众多功能,从外部导入jar包是Intellij Idea 12的一项核心操作,接下来的内容将系统性地阐释如何在Intellij Idea 12环境执行外部jar包的导入操作。 _步骤一:进入项目结构设置界面_ 启动Intellij Idea 12软件,加载一个既有的项目或新建一个项目,随后通过点击“文件”(File)菜单并从下拉选项选择“项目结构”(Project Structure),此操作将引导用户进入项目结构配置界面。 _步骤二:执行模块添加流程_ 在呈现的项目结构配置界面,用户需选择“模块”(Modules)这一选项卡,随后点击界面上的“+”符号,并从弹出的列表选择“JARs or directories”(jar文件或目录),这一步骤将触发“添加jar或目录”(Add Jar or Directory)的对话框显示。 _步骤三:指定要导入的jar文件_ 在“添加jar或目录”(Add Jar or Directory)的对话框,用户需要浏览并选计划导入的jar文件,之后点击“确定”(OK)按钮,以完成jar文件的添加过程至项目。 _步骤四:验证jar文件的导入状态_ 完成上述步骤后,用户可返回至项目结构配置界面,并在“依赖项”(Dependencies)选项卡下查看到新添加的jar文件,这证明了jar文件已成功被导入至项目。 _注意事项_...

67,535

社区成员

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

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