Tencent/APIJSON · error · UnsupportedOperationException
join:value 中 value 里的 {}/{}错误!不支持 {} 等 [ @ APP, < LEFT, > RI
Error message
join:value 中 value 里的 {}/{}错误!不支持 {} 等 [ @ APP, < LEFT, > RIGHT, * CROSS, & INNER, | FULL, ! OUTER, ^ SIDE, ( ANTI, ) FOREIGN, ~ ASOF ] 之外的 JOIN 类型 ! What it means
Thrown while concatenating JOIN WHERE strings when a Join object's type is not one of the supported @ APP, < LEFT, > RIGHT, * CROSS, & INNER, | FULL, ! OUTER, ^ SIDE, ( ANTI, ) FOREIGN, ~ ASOF join types. The switch on join type falls into default and rejects the request.
Source
Thrown at APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java:3922
else { // & INNER JOIN: A & B; | FULL JOIN: A | B; OUTER JOIN: ! (A | B)
int logic = Logic.getType(jt);
newWs += " ( "
+ gainCondition(
Logic.isNot(logic),
ws
+ ( isWsEmpty ? "" : (Logic.isAnd(logic) ? AND : OR) )
+ " ( " + js + " ) "
)
+ " ) ";
}
newPvl.addAll(pvl);
newPvl.addAll(jc.getPreparedValueList());
changed = true;
break;
default:
throw new UnsupportedOperationException(
"join:value 中 value 里的 " + jt + "/" + j.getPath()
+ "错误!不支持 " + jt + " 等 [ @ APP, < LEFT, > RIGHT, * CROSS"
+ ", & INNER, | FULL, ! OUTER, ^ SIDE, ( ANTI, ) FOREIGN, ~ ASOF ] 之外的 JOIN 类型 !"
);
}
}
if (changed) {
whereString = newWs;
setPreparedValueList(newPvl);
}
}
return whereString;
}
/**View on GitHub (pinned to 5284052872)
Solutions
- Use only the documented join type tokens: @, <, >, *, &, |, !, ^, (, ), ~.
- Align client and server APIJSON versions so the join type vocabulary matches.
- Check the exact join key/path string reported in the message and fix or remove that entry.
Example fix
// before
"join": {"Comment/userId@/User/id": {"@type": "XX"}}
// after
"join": {"Comment/userId@/User/id": {"@type": "@ APP"}} Defensive patterns
Strategy: validation
Validate before calling
const OK_JOIN_TYPES = ['@','<','>','*','&','|','!','^','(',')','~'];
function validJoinType(t) { return OK_JOIN_TYPES.some(x => (t || '').trim().toUpperCase().startsWith(x)); }
if (!validJoinType(joinDef['@type'])) throw new Error('unsupported join type'); Prevention
- Restrict join-type input to a whitelist enum in your client.
- Pin client and server to the same APIJSON version.
When it happens
Trigger: A "join": {".../.../...": {"@group": {"@type": ...}}} definition (or joiner string parsed into Join objects) whose type character/enum is misspelled or from a newer/older version vocabulary not understood by this JAR.
Common situations: Mixing APIJSON versions between client and server (join type vocabulary differs), typos in @type, or using a JOIN type added in a newer release than the deployed ORM.
Related errors
- 批量新增/修改失败!{}/{}:value 中value不合法!类型必须是 OBJECT ,结构为 {} !
- AbstractParser.onJoinParse join 只能是 String 或 Map<String, Ob
- @join:value 中value不合法!必须为 &/Table0/key0,</Table1/key1,... 或
- @join:value 中 value 值 {} 不合法!必须为 &/Table0,</Table1/key1,@/Ta
- @join:'{}' 对应的 {} 不是合法的数组 key[] !@ APP JOIN 最多允许跨 1 层,只能是子数组
AI-assisted analysis of Tencent/APIJSON@5284052872 (2026-08-14).
Data as JSON: /api/errors/2986230ecdb6ffe3.
Report an issue: GitHub.