ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 10.4.1.7\. 外置命名查询(Externalizing named queries) 你可以在映射文件中定义命名查询(named queries)。 (如果你的查询串中包含可能被解释为XML标记(markup)的字符,别忘了用`CDATA`包裹起来。) ``` <query name="ByNameAndMaximumWeight"><![CDATA[ from eg.DomesticCat as cat where cat.name = ? and cat.weight > ? ] ]></query> ``` 参数绑定及执行以编程方式(programatically)完成: ``` Query q = sess.getNamedQuery("ByNameAndMaximumWeight"); q.setString(0, name); q.setInt(1, minWeight); List cats = q.list(); ``` 请注意实际的程序代码与所用的查询语言无关,你也可在元数据中定义原生SQL(native SQL)查询, 或将原有的其他的查询语句放在配置文件中,这样就可以让Hibernate统一管理,达到迁移的目的。 也请注意在`&lt;hibernate-mapping&gt;`元素中声明的查询必须有一个全局唯一的名字,而在`&lt;class&gt;`元素中声明的查询自动具有全局名,是通过类的全名加以限定的。比如`eg.Cat.ByNameAndMaximumWeight`。