添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

mysql单表递归查询(jpa[org.hibernate.QueryException: Space is not allowed afterQuery parameter prefix ':'])

最新推荐文章于 2022-08-26 10:37:41 发布
最新推荐文章于 2022-08-26 10:37:41 发布 阅读量2.3k

组织表字段id,及parentId,数据库mysql5.7

①解决的问题点:需要查出一个组织树结构,根据指定ID获取当前ID的所有子树。

select  id,

parent_id
from    (select * from hrm_organization
order by parent_id, id) organization,
(select @pv := '18') initialisation
where   find_in_set(parent_id, @pv) > 0

and     @pv := concat(@pv, ',', id);

②解决的问题点:查出一条线性结构,查询当前ID的所有父级

SELECT
t.id,
@pv := t.parent_id
FROM
(
SELECT
*
FROM
hrm_organization
ORDER BY
id DESC
) t
JOIN (SELECT @pv := 31 from hrm_organization) tmp
WHERE
t.id =@pv;

③解决【:】错误问题:在:前加转义字符【\\】

SELECT @pv \\:= :organizationId
@Query(nativeQuery = true, value="SELECT id,name,budget_number,parent_id,description FROM hrm_organization WHERE del_flag = FALSE ORDER BY parent_id,id) organization, (SELECT @pv \\:= :organizationId) initialisation WHERE find_in_set(parent_id, @pv) > 0 AND @pv \\:= concat(@pv, ',', id) ")
mysql单表递归查询(jpa[org.hibernate.QueryException: Space is not allowed afterQuery parameter prefix ':']) 组织表字段id,及parentId,数据库mysql5.7①解决的问题点:需要查出一个组织树结构,根据指定ID获取当前ID的所有子树。select  id,        parent_id from    (select * from hrm_organization         order by parent_id, id) organization, @Override public Page findBySpecification() { Specification specification = new Specification() { @SneakyThrows
出处:在 mysql 中可以运行,但用 hibernate 查不能识别”:=”,求高手解决。。。比如语句 SELECT(@i:=@i+1) as i, a.* from PM_REGISTER_USER_RELATION a,(select @i:=0) as it ; 结果带有“序号” 直接在 MySQL 执行是没有任何问题的,但是在 hibernate 中执行 因为有 “:=” 所以会报异常 Spac
z_user(id,name,age),z_role(id,name),z_role_user(id,user_id,role_id); 其中z_role_user是关联表,user和role的关系是多对多,所以用到了@ManyToMany注解; 下面是三个实体: @Entity @Table(name = "z_user") public class UserX { @Id() @GeneratedValue(strategy = GenerationType.
写这个的初衷在于让自己对方法的应用更加深刻,废话不多进入今天的主题. Mysql 单表 递归查询 (文章主要借鉴于网络). 首先建表nodelist. CREATE TABLE nodelist( id INT PRIMARY KEY, //本节点ID。 nodename VARCHAR(20), //节点名称,为方便辨别而已。 pid INT //父节点。 接着插入表数据. Insert IN
CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `deptid` int(11) DEFAULT NULL, PRIMARY KE...
MySQL 中实现 单表 递归查询 的方法是使用WITH RECURSIVE子句。首先,你需要创建一个临时表并初始化数据。然后,利用 递归查询 子句将查询结果不断代入到查询中进行下一轮的查询操作。接下来,使用 递归查询 子句和相关的条件和操作符来构建 递归查询 语句。最后,使用SELECT语句来查询最终结果。 这里是一个示例的 递归查询 语句: WITH RECURSIVE temp AS ( SELECT * FROM table_name WHERE condition UNION ALL SELECT t.* FROM table_name t INNER JOIN temp t2 ON t2.id = t.parent_id SELECT * FROM temp; 在这个示例中,temp是临时表的别名,table_name是你要查询的表名,condition是你的查询条件。在 递归查询 子句中,首先选择满足条件的初始数据,然后通过INNER JOIN将temp表与原表进行关联,继续查询满足条件的数据,直到没有满足条件的数据为止。 请注意, 递归查询 可能会导致性能问题,因此在使用时需要慎重考虑。同时,确保在 递归查询 子句中使用适当的条件和操作符,以避免无限 递归 导致的死循环。