|
1 | 1 | package me.zort.sqllib; |
2 | 2 |
|
3 | 3 | import com.google.gson.Gson; |
4 | | -import lombok.*; |
5 | | -import me.zort.sqllib.api.*; |
| 4 | +import lombok.AllArgsConstructor; |
| 5 | +import lombok.Data; |
| 6 | +import lombok.Getter; |
| 7 | +import lombok.RequiredArgsConstructor; |
| 8 | +import me.zort.sqllib.api.ObjectMapper; |
| 9 | +import me.zort.sqllib.api.Query; |
| 10 | +import me.zort.sqllib.api.StatementFactory; |
6 | 11 | import me.zort.sqllib.api.data.QueryResult; |
7 | 12 | import me.zort.sqllib.api.data.QueryRowsResult; |
8 | 13 | import me.zort.sqllib.api.data.Row; |
9 | 14 | import me.zort.sqllib.api.mapping.StatementMappingFactory; |
10 | 15 | import me.zort.sqllib.api.mapping.StatementMappingResultAdapter; |
11 | 16 | import me.zort.sqllib.api.mapping.StatementMappingStrategy; |
12 | 17 | import me.zort.sqllib.api.options.NamingStrategy; |
| 18 | +import me.zort.sqllib.api.repository.SQLTableRepository; |
13 | 19 | import me.zort.sqllib.internal.Defaults; |
14 | 20 | import me.zort.sqllib.internal.annotation.JsonField; |
15 | 21 | import me.zort.sqllib.internal.factory.SQLConnectionFactory; |
|
28 | 34 | import org.jetbrains.annotations.NotNull; |
29 | 35 | import org.jetbrains.annotations.Nullable; |
30 | 36 |
|
31 | | -import java.lang.invoke.MethodHandles; |
32 | | -import java.lang.invoke.MethodType; |
33 | | -import java.lang.reflect.*; |
| 37 | +import java.lang.reflect.Field; |
| 38 | +import java.lang.reflect.Method; |
| 39 | +import java.lang.reflect.Modifier; |
| 40 | +import java.lang.reflect.Proxy; |
34 | 41 | import java.sql.*; |
35 | 42 | import java.util.*; |
36 | 43 | import java.util.concurrent.CopyOnWriteArrayList; |
@@ -185,6 +192,19 @@ public final <T> T createGate(Class<T> mappingInterface) { |
185 | 192 | }); |
186 | 193 | } |
187 | 194 |
|
| 195 | + @SuppressWarnings("unchecked, rawtypes") |
| 196 | + @ApiStatus.Experimental |
| 197 | + public final boolean buildEntitySchema(String tableName, Class<?> entityClass) { |
| 198 | + Objects.requireNonNull(entityClass, "Entity class cannot be null!"); |
| 199 | + |
| 200 | + SQLTableRepository repository = new SQLTableRepositoryBuilder() |
| 201 | + .withConnection(this) |
| 202 | + .withTableName(tableName) |
| 203 | + .withTypeClass(entityClass) |
| 204 | + .build(); |
| 205 | + return repository.createTable(); |
| 206 | + } |
| 207 | + |
188 | 208 | /** |
189 | 209 | * Performs new query and returns the result. This result is never null. |
190 | 210 | * See: {@link QueryRowsResult#isSuccessful()} |
|
0 commit comments