Skip to content

Commit d9b2d7e

Browse files
committed
Entity schema creation.
1 parent c8ae37b commit d9b2d7e

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

core/src/main/java/me/zort/sqllib/SQLDatabaseConnectionImpl.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
package me.zort.sqllib;
22

33
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;
611
import me.zort.sqllib.api.data.QueryResult;
712
import me.zort.sqllib.api.data.QueryRowsResult;
813
import me.zort.sqllib.api.data.Row;
914
import me.zort.sqllib.api.mapping.StatementMappingFactory;
1015
import me.zort.sqllib.api.mapping.StatementMappingResultAdapter;
1116
import me.zort.sqllib.api.mapping.StatementMappingStrategy;
1217
import me.zort.sqllib.api.options.NamingStrategy;
18+
import me.zort.sqllib.api.repository.SQLTableRepository;
1319
import me.zort.sqllib.internal.Defaults;
1420
import me.zort.sqllib.internal.annotation.JsonField;
1521
import me.zort.sqllib.internal.factory.SQLConnectionFactory;
@@ -28,9 +34,10 @@
2834
import org.jetbrains.annotations.NotNull;
2935
import org.jetbrains.annotations.Nullable;
3036

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;
3441
import java.sql.*;
3542
import java.util.*;
3643
import java.util.concurrent.CopyOnWriteArrayList;
@@ -185,6 +192,19 @@ public final <T> T createGate(Class<T> mappingInterface) {
185192
});
186193
}
187194

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+
188208
/**
189209
* Performs new query and returns the result. This result is never null.
190210
* See: {@link QueryRowsResult#isSuccessful()}

0 commit comments

Comments
 (0)