休眠 3.6 和 postgresql 9.1。使用 SQLQuery 如何获取结果数组数据(Long 助手数组、“Text、Long、Timestamp”行数组 - 帐户)?
limit = 10000;
final SQLQuery sqlQuery = getSession().createSQLQuery("SELECT id, name, ts, " +
" array(SELECT assistant_id FROM user_assistant WHERE p_id=pr.id ORDER BY assistant_id) AS accounts," +
" array(SELECT row(type,uid,ts) FROM user_account WHERE p_id=pr.id ORDER BY type) AS accs," +
" FROM profile pr WHERE ts > ? ORDER BY ts LIMIT " + limit);
大多数使用休眠实体和注释编写的 DAO 函数。但是对于一些统计任务来说更容易使用 HQL 甚至 SQL。与 hibernateSQL 中的纯 JDBC 相比,使用数组并不那么直观。
JDBC 可能是一个解决方案,但我还没有找到从 Hibernate Session 或 Connection 获取 JDBC 语句的任何方法。ResultTransformer 也无济于事,失败:
org.hibernate.MappingException: No Dialect mapping for JDBC type: 2003