support extends SQLProvider

This commit is contained in:
Timi
2025-11-06 14:10:53 +08:00
parent 4de03cf60a
commit 2e67e4086d

View File

@ -272,7 +272,7 @@ public class SQLProvider {
* @param context 代理器上下文 * @param context 代理器上下文
* @return 实体类元数据 * @return 实体类元数据
*/ */
private EntityMeta getEntityMeta(ProviderContext context) { protected EntityMeta getEntityMeta(ProviderContext context) {
Type[] types = context.getMapperType().getGenericInterfaces(); Type[] types = context.getMapperType().getGenericInterfaces();
ParameterizedType type = (ParameterizedType) types[0]; ParameterizedType type = (ParameterizedType) types[0];
Class<?> entityClass = (Class<?>) type.getActualTypeArguments()[0]; Class<?> entityClass = (Class<?>) type.getActualTypeArguments()[0];
@ -285,7 +285,7 @@ public class SQLProvider {
* @param entityClass 实体类 * @param entityClass 实体类
* @return 元数据 * @return 元数据
*/ */
private EntityMeta getEntityMeta(Class<?> entityClass) { protected EntityMeta getEntityMeta(Class<?> entityClass) {
return ENTITY_META_CACHE.computeIfAbsent(entityClass, EntityMeta::new); return ENTITY_META_CACHE.computeIfAbsent(entityClass, EntityMeta::new);
} }
@ -295,7 +295,7 @@ public class SQLProvider {
* @author 夜雨 * @author 夜雨
* @since 2025-02-05 23:47 * @since 2025-02-05 23:47
*/ */
private static class EntityMeta { protected static class EntityMeta {
/** 实体类 */ /** 实体类 */
final Class<?> entityClass; final Class<?> entityClass;
@ -375,6 +375,42 @@ public class SQLProvider {
canDelete = Deletable.class.isAssignableFrom(entityClass); canDelete = Deletable.class.isAssignableFrom(entityClass);
canDestroy = Destroyable.class.isAssignableFrom(entityClass); canDestroy = Destroyable.class.isAssignableFrom(entityClass);
} }
public Class<?> getEntityClass() {
return entityClass;
}
public String getTable() {
return table;
}
public String getSelectAllClause() {
return selectAllClause;
}
public FieldColumn getIdFieldColumn() {
return idFieldColumn;
}
public List<FieldColumn> getFieldColumnList() {
return fieldColumnList;
}
public boolean canCreate() {
return canCreate;
}
public boolean canUpdate() {
return canUpdate;
}
public boolean canDelete() {
return canDelete;
}
public boolean canDestroy() {
return canDestroy;
}
} }
/** /**
@ -383,7 +419,7 @@ public class SQLProvider {
* @author 夜雨 * @author 夜雨
* @since 2025-02-07 09:54 * @since 2025-02-07 09:54
*/ */
private static class FieldColumn { protected static class FieldColumn {
/** 字段 */ /** 字段 */
final Field field; final Field field;
@ -421,5 +457,29 @@ public class SQLProvider {
isAutoUpperUUID = false; isAutoUpperUUID = false;
} }
} }
public Field getField() {
return field;
}
public String getFieldName() {
return fieldName;
}
public String getColumnName() {
return columnName;
}
public boolean isId() {
return isId;
}
public boolean isAutoUUID() {
return isAutoUUID;
}
public boolean isAutoUpperUUID() {
return isAutoUpperUUID;
}
} }
} }