小编pra*_*een的帖子

postgresql with RECURSIVE 查询来获取类别和子类别

我有一个如下表

在此输入图像描述

使用WITH RECURSIVE语句我能够获得表的深度

WITH RECURSIVE category_tree(id, name, depth) AS (
  SELECT id, name, ARRAY[id]
  FROM category
  WHERE parentid IS NULL
UNION ALL
  SELECT category.id, category.name, depth || category.id
  FROM category_tree
  JOIN category ON category.parentid=category_tree.id
  WHERE NOT category.id = ANY(depth)
)
SELECT * FROM category_tree ORDER BY id;
Run Code Online (Sandbox Code Playgroud)

我应该如何更改查询才能获得如下输出(直到树的第 n 层)?

在此输入图像描述

我打算使用上面的结果生成如下所示的站点地图:

在此输入图像描述

我目前正在尝试将 LEFT OUTER JOIN 与 WITH RECURSIVE 语句一起使用,但我无法找到如何操作?有人可以指导一下吗?

sql postgresql join hierarchical-data

5
推荐指数
1
解决办法
2224
查看次数

java.lang.IllegalArgumentException:'hello'不包含等号

我目前正在使用Apache commons配置库来编写和读取文件中的数据.我能够将键值对colors = hello保存到user..properties文件中,但是当我尝试读取该值时,获取以下异常.

Exception in thread "main" java.lang.IllegalArgumentException: 'hello' does not contain an equals sign
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:625)
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:579)
at com.code.prep.CommonsMain.readProperties(CommonsMain.java:21)
at com.code.prep.CommonsMain.main(CommonsMain.java:12)
Run Code Online (Sandbox Code Playgroud)

代码如下

package com.code.prep;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;

public class CommonsMain {

    public static void main(String[] args) {

        CommonsMain main = new CommonsMain();
        main.readProperties();
//      main.writeProperties();
    }

    public void readProperties(){

        PropertiesConfiguration config = new PropertiesConfiguration();
        try {
            config.load("user.properties");
            System.out.println(config.getProperties("colors"));
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
    }

    public void writeProperties(){
        PropertiesConfiguration config = new PropertiesConfiguration();
        try { …
Run Code Online (Sandbox Code Playgroud)

java apache-commons properties-file

0
推荐指数
1
解决办法
1151
查看次数