mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-04 11:52:41 +08:00
@@ -33,19 +33,23 @@ public abstract class TreeChildTermBuilder extends AbstractTermFragmentBuilder {
|
||||
Arrays.fill(args, "?");
|
||||
|
||||
RDBColumnMetadata pathColumn = column
|
||||
.getOwner()
|
||||
.getColumn("path")
|
||||
.orElseThrow(() -> new IllegalArgumentException("not found 'path' column"));
|
||||
.getOwner()
|
||||
.getSchema()
|
||||
.getTable(tableName)
|
||||
.flatMap(t -> t.getColumn("path"))
|
||||
.orElseThrow(() -> new IllegalArgumentException("not found 'path' column"));
|
||||
|
||||
RDBColumnMetadata idColumn = column
|
||||
.getOwner()
|
||||
.getColumn("id")
|
||||
.orElseThrow(() -> new IllegalArgumentException("not found 'id' column"));
|
||||
.getOwner()
|
||||
.getSchema()
|
||||
.getTable(tableName)
|
||||
.flatMap(t -> t.getColumn("id"))
|
||||
.orElseThrow(() -> new IllegalArgumentException("not found 'id' column"));
|
||||
|
||||
return PrepareSqlFragments
|
||||
.of().addSql(
|
||||
"exists(select 1 from", tableName, "_p join", tableName,
|
||||
"_c on", idColumn.getFullName("_c"), "in(", String.join("?", args), ")",
|
||||
"_c on", idColumn.getFullName("_c"), "in(", String.join(",", args), ")",
|
||||
"and", pathColumn.getFullName("_p"), "like concat(" + pathColumn.getFullName("_c") + ",'%')",
|
||||
"where", columnFullName, "=", idColumn.getFullName("_p"), ")"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user