何时需要为命名查询添加标量?例如:
<return-scalar column="colName" type="java.lang.String" />
有时似乎不需要它们,而有时,如果没有标量,查询将抛出异常。
答案 0 :(得分:2)
让我分享一些意见。
如果您的查询是 select * from table ,可以使用setScalar动态限制列数。
如果您使用标量,查询将不会使用 ResultSetMetadata 来查找类型,并将使用提供的更快更有效的类型。
如何将从ResultSetMetaData返回的java.sql.Types映射到Hibernate类型由Dialect控制。如果未映射特定类型,或者未生成预期类型,则可以通过调用Dialect中的registerHibernateType来自定义它。
阅读文档以获取更多详细信息here