|
@@ -2,9 +2,7 @@ package db;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.lang.reflect.Field;
|
|
|
-import java.lang.reflect.InvocationTargetException;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.sql.SQLException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
@@ -14,7 +12,7 @@ import db.annotation.DbField;
|
|
|
import db.annotation.DbId;
|
|
|
import db.annotation.DbLink;
|
|
|
import db.annotation.DbTable;
|
|
|
-import db.mapper.DbMapper;
|
|
|
+import db.mapper.DatabaseMapper;
|
|
|
|
|
|
public abstract class DatabaseTable<T extends Persistable> {
|
|
|
|
|
@@ -143,16 +141,6 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
return clazz.getAnnotation(DbTable.class);
|
|
|
}
|
|
|
|
|
|
- private void checkIfPersistable(Field f) {
|
|
|
- boolean ok = false;
|
|
|
- for(Class<?> clazz : f.getType().getInterfaces()) {
|
|
|
- ok |= clazz.getName().endsWith("Persistable");
|
|
|
- }
|
|
|
- if (!ok) {
|
|
|
- throw new IllegalStateException("Field object don't implement Persistable");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private Optional<T> getFromDbById(long id) {
|
|
|
DbTable dbTable = getDbTableAnnotation();
|
|
|
// Cherche l'id
|
|
@@ -175,7 +163,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
String sql = "Select * From " + dbTable.name() + " Where " + idField + " = ?";
|
|
|
List<Object> params = new ArrayList<>();
|
|
|
params.add(id);
|
|
|
- Optional<T> result = Database.query(sql, params, DbMapper.objectMapper(dbTable));
|
|
|
+ Optional<T> result = Database.query(sql, params, DatabaseMapper.objectMapper(dbTable));
|
|
|
// Return
|
|
|
return result;
|
|
|
}
|
|
@@ -186,7 +174,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
String sql = "Select * From " + dbTable.name() + " Where " + fieldname + " = ?";
|
|
|
List<Object> params = new ArrayList<>();
|
|
|
params.add(value);
|
|
|
- Optional<List<T>> result = Database.query(sql, params, DbMapper.listMapper(dbTable));
|
|
|
+ Optional<List<T>> result = Database.query(sql, params, DatabaseMapper.listMapper(dbTable));
|
|
|
// Return
|
|
|
if(result.isPresent()) {
|
|
|
return result.get();
|
|
@@ -201,7 +189,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
sql.append("Select * From " + dbTable.name() + "Where 1=1");
|
|
|
where.forEach(elt -> sql.append(" And " + elt + " = ?"));
|
|
|
// Execution requete
|
|
|
- Optional<List<T>> result = Database.query(sql.toString(), params, DbMapper.listMapper(dbTable));
|
|
|
+ Optional<List<T>> result = Database.query(sql.toString(), params, DatabaseMapper.listMapper(dbTable));
|
|
|
// Return
|
|
|
if(result.isPresent()) {
|
|
|
return result.get();
|
|
@@ -213,7 +201,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
DbTable dbTable = getDbTableAnnotation();
|
|
|
// Requete sql
|
|
|
String sql = "Select * From " + dbTable.name();
|
|
|
- Optional<List<T>> result = Database.query(sql, DbMapper.listMapper(dbTable));
|
|
|
+ Optional<List<T>> result = Database.query(sql, DatabaseMapper.listMapper(dbTable));
|
|
|
// Return
|
|
|
if(result.isPresent()) {
|
|
|
return result.get();
|
|
@@ -251,7 +239,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
values.append("?");
|
|
|
// Si il y a un lien avec une autre entité
|
|
|
if(field.isAnnotationPresent(DbLink.class)) {
|
|
|
- checkIfPersistable(field);
|
|
|
+ DatabaseUtils.checkIfPersistable(field);
|
|
|
if(field.get(obj) == null) {
|
|
|
params.add(0l);
|
|
|
} else {
|
|
@@ -320,7 +308,7 @@ public abstract class DatabaseTable<T extends Persistable> {
|
|
|
sql.append(field.getAnnotation(DbField.class).value() + " = ?");
|
|
|
// Si il y a un lien avec une autre entité
|
|
|
if(field.isAnnotationPresent(DbLink.class)) {
|
|
|
- checkIfPersistable(field);
|
|
|
+ DatabaseUtils.checkIfPersistable(field);
|
|
|
if(field.get(obj) == null) {
|
|
|
params.add(0l);
|
|
|
} else {
|