有没有办法在Hibernate中使用像sql-server一样的分析函数?
就像是
select foo from Foo foo where f.x = max(f.x) over (partition by f.y)
Run Code Online (Sandbox Code Playgroud)
您是在本机SQL查询之后.
如果您使用的是JPA,则语法为:
Query q = em.createNativeQuery("select foo.* from Foo foo " +
"where f.x = max(f.x) over " +
"(partition by f.y)", Foo.class);
Run Code Online (Sandbox Code Playgroud)
如果需要返回多个类型,请查看SQLResultSetMapping批注.
如果您直接使用Hibernate API:
Query q = session.createSQLQuery("select {foo.*} from Foo foo " +
"where f.x = max(f.x) over "+
"(partition by f.y)");
q.addEntity("foo", Foo.class);
Run Code Online (Sandbox Code Playgroud)
见10.4.4.有关详细信息,请参阅Hibernate文档中的本机SQL查询.
在这两个API中,您可以使用setParameter正常传递参数.
| 归档时间: |
|
| 查看次数: |
7778 次 |
| 最近记录: |