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

  1. Use only the documented join type tokens: @, <, >, *, &, |, !, ^, (, ), ~.
  2. Align client and server APIJSON versions so the join type vocabulary matches.
  3. 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

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


AI-assisted analysis of Tencent/APIJSON@5284052872 (2026-08-14). Data as JSON: /api/errors/2986230ecdb6ffe3. Report an issue: GitHub.