Java SpringJDBC不适用于h2查询递归

Java SpringJDBC不适用于h2查询递归,java,spring,recursion,jdbc,h2,Java,Spring,Recursion,Jdbc,H2,有标准表组和ACL。我与组表建立了多对多连接,以便能够将组包含在组中。现在,当我尝试使用H2数据库和请求类型来替换查询时 @Bean public JdbcUserDetailsManager userDetailsManager() { JdbcUserDetailsManager manager = new JdbcUserDetailsManager(); manager.setDataSource(dataSource); manager.setRolePrefi

有标准表组和ACL。我与组表建立了多对多连接,以便能够将组包含在组中。现在,当我尝试使用H2数据库和请求类型来替换查询时

@Bean
public JdbcUserDetailsManager userDetailsManager() {
    JdbcUserDetailsManager manager = new JdbcUserDetailsManager();
    manager.setDataSource(dataSource);
    manager.setRolePrefix("GROUP_");
    manager.setEnableGroups(true);
    manager.setEnableAuthorities(false);
    manager.setGroupAuthoritiesByUsernameQuery(
            //h2
            "WITH recursive rec_groups (parent, child, name, authority) AS " +
                    "(SELECT gm.group_id, cast(NULL as bigint), g.group_name, ga.authority " +
                    "FROM wsseddb.group_members as gm, wsseddb.groups g, wsseddb.GROUP_AUTHORITIES as ga " +
                    "WHERE username = ? and g.id = gm.group_id and ga.group_id = gm.group_id " +
                    "UNION ALL " +
                    "SELECT gpc.parent_id, gpc.child_id, g.group_name, ga.authority " +
                    "FROM wsseddb.groups_parent_child as  gpc, rec_groups as rg, wsseddb.GROUPS  as g,  wsseddb.GROUP_AUTHORITIES as ga " +
                    "WHERE child_id = rg.parent and g.id = gpc.parent_id and ga.group_id = gpc.parent_id) " +
                    "SELECT gs.parent, gs.name as group_name, gs.authority FROM rec_groups gs");
    return manager;
}`
我不回来了,我没有权力。当我使用postgresql时,一切都很好。如何用h2解决这个问题

在web H2中,查询工作正常,但在spring中,jdbc preparentstatement在H2的递归CTE实现中返回0行。目前(版本1.4.191),如果递归CTE包含任何绑定变量,则执行是不正确的。如果删除并内联bind变量(当然要注意SQL注入),它应该可以工作


请注意,此功能是Thx Lukas!我将尝试另一个数据库