您好我想构建一个查询
我的表结构是
Nodeid Nodename Nodetype Parentid nodedes
1 Node1 A 0 hghg
2 Node2 B 1 kjhjkh
3 Node3 A 0 gfhgfh
4 Node4 B 1 kjhjkh
如果nodettype是B,那么节点的节点名应该与其parentid的节点名称连接,如NOde1-NOde4或NOde1-node2
我正在使用hibernate,以及如何将此查询转换为hibernate查询 我正在使用postgres 我有一个查询,但它只能运行一个记录..它不是多行的
SELECT nodename || '--' || (select nodename from table1 where nodetype='B')
FROM table1
WHERE nodeid in (SELECT table1.parentid FROM table1 WHERE table1.nodetype = 'B')
任何人都可以帮忙
答案 0 :(得分:1)
SELECT a.nodename||'--'||b.nodename
FROM table1 a, table1 b
WHERE b.nodetype='B'
AND a.nodeid = b.parentid;
答案 1 :(得分:0)
这是一个HQL查询,返回类型B的节点的所有名称及其父节点的名称。连接不应由查询完成。您应该在演示逻辑中执行此操作。
select node.name, parentNode.name from Node node
inner join node.parent parentNode
where node.type = 'B'
此查询返回Object[]
的列表。每个Object[]
包含节点nalme作为其第一个元素,父节点的名称作为其第二个元素。