sum*_*mit 12 java postgresql hibernate criteria hibernate-criteria
我有一个带有列名的sql表A.
name, id1, id2, val1
Run Code Online (Sandbox Code Playgroud)
和一个带有列名的表B.
id1, id2, key1, key2
Run Code Online (Sandbox Code Playgroud)
这是我的SQL查询
SELECT
v1.id1,
v1.id2
FROM (
SELECT
A.id1,
A.id2,
min(val1) AS x
FROM A
JOIN B ON A.id1 = B.id1 AND A.id2 = B.id2
GROUP BY A.id1, A.id2
) AS v1
WHERE v1.x > 10
Run Code Online (Sandbox Code Playgroud)
使用DetachedCriteria我能够形成子查询
DetachedCriteria subCriteria = DetachedCriteria.forClass(A_model.class);
subCriteria.createAlias("b", "b_model");
subCriteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("id1"))
.add(Projections.groupProperty("id2"))
.add(Projections.min("val1"),"x");
Run Code Online (Sandbox Code Playgroud)
但我在创建外部查询时遇到了困难.
任何建议我如何创建上述SQL的标准?
谢谢你的期待.
HQL 和 Criteria 对象均不支持从 Select 中选择。这里的解决方案是命名查询。
@NamedNativeQueries({
@NamedNativeQuery(
name = "findV1",
query = "SELECT
v1.id1,
v1.id2
FROM (
SELECT
A.id1,
A.id2,
min(val1) AS x
FROM A
JOIN B ON A.id1 = B.id1 AND A.id2 = B.id2
GROUP BY A.id1, A.id2
) AS v1
WHERE v1.x > 10"
)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |