-
Notifications
You must be signed in to change notification settings - Fork 748
Open
Labels
good first issueGood for newcomersGood for newcomersimprovementImprovements on everythingImprovements on everything
Description
What would you like to be improved?
Role deletion on the relational backend can reach RoleMetaMapper.softDeleteRoleMetaByRoleId(Long roleId) through the REST delete-role path. The provider SQL uses #{roleId}, but this mapper method currently lacks @param("roleId"). That mismatch can cause MyBatis named-parameter binding failures at runtime during role deletion.
How should we improve?
Add @param("roleId") to RoleMetaMapper.softDeleteRoleMetaByRoleId (and keep provider SQL as #{roleId}), ensuring deterministic named binding across environments.
Here's a test to help:
@Test
public void testSoftDeleteRoleMetaByRoleIdHasNamedParam() throws NoSuchMethodException {
Method method = RoleMetaMapper.class.getMethod("softDeleteRoleMetaByRoleId", Long.class);
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
Assertions.assertEquals(1, parameterAnnotations.length);
Param param = null;
for (Annotation annotation : parameterAnnotations[0]) {
if (annotation instanceof Param) {
param = (Param) annotation;
break;
}
}
Assertions.assertNotNull(
param, "Missing @Param on softDeleteRoleMetaByRoleId may break MyBatis named binding.");
Assertions.assertEquals("roleId", param.value());
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomersimprovementImprovements on everythingImprovements on everything