[DEV] add condition in row request and better name naming in condition
This commit is contained in:
parent
6f1dd991c5
commit
15125e2d6d
11
.classpath
11
.classpath
@ -30,5 +30,16 @@
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
@ -12,13 +12,13 @@ import org.kar.archidata.db.DBEntry;
|
||||
import org.kar.archidata.model.User;
|
||||
|
||||
public class UserDB {
|
||||
|
||||
|
||||
public UserDB() {}
|
||||
|
||||
|
||||
public static User getUsers(final long userId, QueryOption... option) throws Exception {
|
||||
return DataAccess.get(User.class, userId, option);
|
||||
}
|
||||
|
||||
|
||||
public static User getUserOrCreate(final long userId, final String userLogin, QueryOption... option) throws Exception {
|
||||
final User user = getUsers(userId);
|
||||
if (user != null) {
|
||||
@ -27,7 +27,7 @@ public class UserDB {
|
||||
createUsersInfoFromOAuth(userId, userLogin, option);
|
||||
return getUsers(userId);
|
||||
}
|
||||
|
||||
|
||||
private static void createUsersInfoFromOAuth(final long userId, final String login, QueryOption... option) throws IOException {
|
||||
QueryOptions options = new QueryOptions(option);
|
||||
final DBEntry entry = DBInterfaceOption.getAutoEntry(options);
|
||||
|
@ -25,7 +25,7 @@ import jakarta.validation.constraints.Size;
|
||||
|
||||
public class AnnotationTools {
|
||||
static final Logger LOGGER = LoggerFactory.getLogger(AnnotationTools.class);
|
||||
|
||||
|
||||
public static String getTableName(final Class<?> clazz, final QueryOptions options) throws Exception {
|
||||
if (options != null) {
|
||||
final OverrideTableName data = options.get(OverrideTableName.class);
|
||||
@ -35,7 +35,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return AnnotationTools.getTableName(clazz);
|
||||
}
|
||||
|
||||
|
||||
public static String getTableName(final Class<?> element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Table.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -51,7 +51,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
public static String getSchemedescription(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Schema.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -62,7 +62,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((Schema) annotation[0]).description();
|
||||
}
|
||||
|
||||
|
||||
public static String getComment(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(DataComment.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -73,7 +73,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((DataComment) annotation[0]).value();
|
||||
}
|
||||
|
||||
|
||||
public static String getDefault(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(DataDefault.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -84,7 +84,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((DataDefault) annotation[0]).value();
|
||||
}
|
||||
|
||||
|
||||
public static ManyToOne getManyToOne(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(ManyToOne.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -95,7 +95,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return (ManyToOne) annotation[0];
|
||||
}
|
||||
|
||||
|
||||
public static DataJson getDataJson(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(DataJson.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -106,7 +106,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return (DataJson) annotation[0];
|
||||
}
|
||||
|
||||
|
||||
public static Long getConstraintsMax(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Max.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -117,7 +117,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((Max) annotation[0]).value();
|
||||
}
|
||||
|
||||
|
||||
public static Long getConstraintsMin(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Min.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -128,7 +128,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((Min) annotation[0]).value();
|
||||
}
|
||||
|
||||
|
||||
public static int getLimitSize(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Column.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -140,7 +140,7 @@ public class AnnotationTools {
|
||||
final int length = ((Column) annotation[0]).length();
|
||||
return length <= 0 ? 0 : length;
|
||||
}
|
||||
|
||||
|
||||
public static Size getConstraintsSize(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Size.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -151,7 +151,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return (Size) annotation[0];
|
||||
}
|
||||
|
||||
|
||||
public static String getConstraintsPattern(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Pattern.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -162,7 +162,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((Pattern) annotation[0]).regexp();
|
||||
}
|
||||
|
||||
|
||||
public static boolean isAnnotationGroup(final Field field, final Class<?> annotationType) {
|
||||
try {
|
||||
final Annotation[] anns = field.getAnnotations();
|
||||
@ -185,7 +185,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static String getFieldName(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Column.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -200,7 +200,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
public static boolean getColumnNotNull(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Column.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -211,7 +211,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return !((Column) annotation[0]).nullable();
|
||||
}
|
||||
|
||||
|
||||
public static boolean getConstraintsNotNull(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(NotNull.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -222,7 +222,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isPrimaryKey(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Id.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -230,7 +230,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isUnique(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Column.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -241,7 +241,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((Column) annotation[0]).unique();
|
||||
}
|
||||
|
||||
|
||||
public static GenerationType getStrategy(final Field element) throws Exception {
|
||||
final Annotation[] annotation = element.getDeclaredAnnotationsByType(GeneratedValue.class);
|
||||
if (annotation.length == 0) {
|
||||
@ -252,27 +252,27 @@ public class AnnotationTools {
|
||||
}
|
||||
return ((GeneratedValue) annotation[0]).strategy();
|
||||
}
|
||||
|
||||
|
||||
public static boolean isDeletedField(final Field element) throws Exception {
|
||||
return element.getDeclaredAnnotationsByType(DataDeleted.class).length != 0;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isCreatedAtField(final Field element) throws Exception {
|
||||
return element.getDeclaredAnnotationsByType(CreationTimestamp.class).length != 0;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isUpdateAtField(final Field element) throws Exception {
|
||||
return element.getDeclaredAnnotationsByType(UpdateTimestamp.class).length != 0;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isdefaultNotRead(final Field element) throws Exception {
|
||||
return element.getDeclaredAnnotationsByType(DataNotRead.class).length != 0;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isIdField(final Field element) throws Exception {
|
||||
return element.getDeclaredAnnotationsByType(Id.class).length != 0;
|
||||
}
|
||||
|
||||
|
||||
public static String getDeletedFieldName(final Class<?> clazz) throws Exception {
|
||||
try {
|
||||
for (final Field elem : clazz.getFields()) {
|
||||
@ -289,7 +289,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static String getUpdatedFieldName(final Class<?> clazz) throws Exception {
|
||||
try {
|
||||
for (final Field elem : clazz.getFields()) {
|
||||
@ -306,7 +306,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static Field getIdField(final Class<?> clazz) {
|
||||
try {
|
||||
for (final Field field : clazz.getFields()) {
|
||||
@ -323,15 +323,15 @@ public class AnnotationTools {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static List<String> getFieldsNames(final Class<?> clazz) throws Exception {
|
||||
return getFieldsNamesFilter(clazz, false);
|
||||
}
|
||||
|
||||
|
||||
public static List<String> getAllFieldsNames(final Class<?> clazz) throws Exception {
|
||||
return getFieldsNamesFilter(clazz, true);
|
||||
}
|
||||
|
||||
|
||||
private static List<String> getFieldsNamesFilter(final Class<?> clazz, final boolean full) throws Exception {
|
||||
final List<String> out = new ArrayList<>();
|
||||
for (final Field field : clazz.getFields()) {
|
||||
@ -346,11 +346,11 @@ public class AnnotationTools {
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isGenericField(final Field elem) throws Exception {
|
||||
return AnnotationTools.isPrimaryKey(elem) || AnnotationTools.isCreatedAtField(elem) || AnnotationTools.isUpdateAtField(elem) || AnnotationTools.isDeletedField(elem);
|
||||
}
|
||||
|
||||
|
||||
public static Field getFieldOfId(final Class<?> clazz) throws Exception {
|
||||
for (final Field field : clazz.getFields()) {
|
||||
// static field is only for internal global declaration ==> remove it ..
|
||||
@ -363,7 +363,7 @@ public class AnnotationTools {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static Field getFieldNamed(final Class<?> clazz, final String name) throws Exception {
|
||||
for (final Field field : clazz.getFields()) {
|
||||
// static field is only for internal global declaration ==> remove it ..
|
||||
@ -376,5 +376,5 @@ public class AnnotationTools {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -52,24 +52,24 @@ public class DataAccess {
|
||||
static final Logger LOGGER = LoggerFactory.getLogger(DataAccess.class);
|
||||
// by default we manage some add-on that permit to manage non-native model (like json serialization, List of external key as String list...)
|
||||
static final List<DataAccessAddOn> addOn = new ArrayList<>();
|
||||
|
||||
|
||||
static {
|
||||
addOn.add(new AddOnManyToMany());
|
||||
addOn.add(new AddOnManyToOne());
|
||||
addOn.add(new AddOnSQLTableExternalForeinKeyAsList());
|
||||
addOn.add(new AddOnDataJson());
|
||||
}
|
||||
|
||||
|
||||
/** Add a new add-on on the current management.
|
||||
* @param addOn instantiate object on the Add-on */
|
||||
public static void addAddOn(final DataAccessAddOn addOn) {
|
||||
DataAccess.addOn.add(addOn);
|
||||
}
|
||||
|
||||
|
||||
public DataAccess() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static boolean isDBExist(final String name, final QueryOption... option) throws InternalServerErrorException {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
if ("sqlite".equals(ConfigBaseVariable.getDBType())) {
|
||||
@ -83,9 +83,9 @@ public class DataAccess {
|
||||
} catch (final IOException ex) {
|
||||
ex.printStackTrace();
|
||||
LOGGER.error("Can not check if the DB exist!!! {}", ex.getMessage());
|
||||
|
||||
|
||||
// TODO: TO test
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
@ -114,7 +114,7 @@ public class DataAccess {
|
||||
}
|
||||
throw new InternalServerErrorException("Can Not manage the DB-access");
|
||||
}
|
||||
|
||||
|
||||
public static boolean createDB(final String name) {
|
||||
if ("sqlite".equals(ConfigBaseVariable.getDBType())) {
|
||||
// no base manage in sqLite ...
|
||||
@ -129,7 +129,7 @@ public class DataAccess {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean isTableExist(final String name, final QueryOption... option) throws InternalServerErrorException {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
try {
|
||||
@ -170,7 +170,7 @@ public class DataAccess {
|
||||
}
|
||||
throw new InternalServerErrorException("Can Not manage the DB-access");
|
||||
}
|
||||
|
||||
|
||||
/** extract a list of "-" separated element from a SQL input data.
|
||||
* @param rs Result Set of the BDD
|
||||
* @param iii Id in the result set
|
||||
@ -189,7 +189,7 @@ public class DataAccess {
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
protected static <T> void setValuedb(final Class<?> type, final T data, final CountInOut iii, final Field field, final PreparedStatement ps) throws Exception {
|
||||
if (type == Long.class) {
|
||||
final Object tmp = field.get(data);
|
||||
@ -448,9 +448,9 @@ public class DataAccess {
|
||||
|
||||
// TODO: this function will replace the previous one !!!
|
||||
protected static RetreiveFromDB createSetValueFromDbCallback(final int count, final Field field) throws Exception {
|
||||
Class<?> type = field.getType();
|
||||
final Class<?> type = field.getType();
|
||||
if (type == Long.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Long tmp = rs.getLong(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -460,7 +460,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == long.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Long tmp = rs.getLong(count);
|
||||
if (rs.wasNull()) {
|
||||
// field.set(data, null);
|
||||
@ -470,7 +470,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Integer.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Integer tmp = rs.getInt(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -480,7 +480,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == int.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Integer tmp = rs.getInt(count);
|
||||
if (rs.wasNull()) {
|
||||
// field.set(obj, null);
|
||||
@ -490,7 +490,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Float.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Float tmp = rs.getFloat(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -500,7 +500,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == float.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Float tmp = rs.getFloat(count);
|
||||
if (rs.wasNull()) {
|
||||
// field.set(obj, null);
|
||||
@ -510,7 +510,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Double.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Double tmp = rs.getDouble(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -520,7 +520,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == double.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Double tmp = rs.getDouble(count);
|
||||
if (rs.wasNull()) {
|
||||
// field.set(obj, null);
|
||||
@ -530,7 +530,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Boolean.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Boolean tmp = rs.getBoolean(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -540,7 +540,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == boolean.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Boolean tmp = rs.getBoolean(count);
|
||||
if (rs.wasNull()) {
|
||||
// field.set(obj, null);
|
||||
@ -550,7 +550,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Timestamp.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final Timestamp tmp = rs.getTimestamp(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -560,7 +560,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == Date.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
try {
|
||||
final Timestamp tmp = rs.getTimestamp(count);
|
||||
if (rs.wasNull()) {
|
||||
@ -582,7 +582,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == LocalDate.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final java.sql.Date tmp = rs.getDate(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -592,7 +592,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == LocalTime.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final java.sql.Time tmp = rs.getTime(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -602,7 +602,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type == String.class) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final String tmp = rs.getString(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -612,7 +612,7 @@ public class DataAccess {
|
||||
};
|
||||
}
|
||||
if (type.isEnum()) {
|
||||
return (final ResultSet rs, Object obj) -> {
|
||||
return (final ResultSet rs, final Object obj) -> {
|
||||
final String tmp = rs.getString(count);
|
||||
if (rs.wasNull()) {
|
||||
field.set(obj, null);
|
||||
@ -635,11 +635,11 @@ public class DataAccess {
|
||||
throw new DataAccessException("Unknown Field Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static boolean isAddOnField(final Field field) {
|
||||
return findAddOnforField(field) != null;
|
||||
}
|
||||
|
||||
|
||||
public static DataAccessAddOn findAddOnforField(final Field field) {
|
||||
for (final DataAccessAddOn elem : addOn) {
|
||||
if (elem.isCompatibleField(field)) {
|
||||
@ -648,7 +648,7 @@ public class DataAccess {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// TODO: manage insert batch...
|
||||
public static <T> List<T> insertMultiple(final List<T> data, final QueryOption... options) throws Exception {
|
||||
final List<T> out = new ArrayList<>();
|
||||
@ -658,17 +658,17 @@ public class DataAccess {
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
public static <T> T insert(final T data, final QueryOption... option) throws Exception {
|
||||
final Class<?> clazz = data.getClass();
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
|
||||
|
||||
// External checker of data:
|
||||
final CheckFunction check = options.get(CheckFunction.class);
|
||||
if (check != null) {
|
||||
check.getChecker().check("", data, AnnotationTools.getFieldsNames(clazz));
|
||||
}
|
||||
|
||||
|
||||
final DBEntry entry = DBInterfaceOption.getAutoEntry(options);
|
||||
final List<Field> asyncFieldUpdate = new ArrayList<>();
|
||||
Long uniqueSQLID = null;
|
||||
@ -680,7 +680,7 @@ public class DataAccess {
|
||||
query.append("INSERT INTO `");
|
||||
query.append(tableName);
|
||||
query.append("` (");
|
||||
|
||||
|
||||
boolean firstField = true;
|
||||
int count = 0;
|
||||
for (final Field field : clazz.getFields()) {
|
||||
@ -822,7 +822,7 @@ public class DataAccess {
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
// seems a good idea, but very dangerous if we not filter input data... if set an id it can be complicated...
|
||||
public static <T> T insertWithJson(final Class<T> clazz, final String jsonData) throws Exception {
|
||||
final ObjectMapper mapper = new ObjectMapper();
|
||||
@ -830,7 +830,7 @@ public class DataAccess {
|
||||
final T data = mapper.readValue(jsonData, clazz);
|
||||
return insert(data);
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> QueryCondition getTableIdCondition(final Class<?> clazz, final ID_TYPE idKey) throws Exception {
|
||||
// Find the ID field type ....
|
||||
final Field idField = AnnotationTools.getIdField(clazz);
|
||||
@ -850,7 +850,7 @@ public class DataAccess {
|
||||
}
|
||||
return new QueryCondition(AnnotationTools.getFieldName(idField), "=", idKey);
|
||||
}
|
||||
|
||||
|
||||
/** Update an object with the inserted json data
|
||||
*
|
||||
* @param <T> Type of the object to insert
|
||||
@ -870,7 +870,7 @@ public class DataAccess {
|
||||
options.add(new TransmitKey(id));
|
||||
return updateWhereWithJson(clazz, jsonData, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static <T> int updateWhereWithJson(final Class<T> clazz, final String jsonData, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final Condition condition = options.get(Condition.class);
|
||||
@ -888,11 +888,11 @@ public class DataAccess {
|
||||
options.add(new FilterValue(keys));
|
||||
return updateWhere(data, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static <T, ID_TYPE> int update(final T data, final ID_TYPE id) throws Exception {
|
||||
return update(data, id, AnnotationTools.getFieldsNames(data.getClass()));
|
||||
}
|
||||
|
||||
|
||||
/** @param <T>
|
||||
* @param data
|
||||
* @param id
|
||||
@ -902,7 +902,7 @@ public class DataAccess {
|
||||
public static <T, ID_TYPE> int update(final T data, final ID_TYPE id, final List<String> updateColomn) throws Exception {
|
||||
return updateWhere(data, new Condition(getTableIdCondition(data.getClass(), id)), new FilterValue(updateColomn), new TransmitKey(id));
|
||||
}
|
||||
|
||||
|
||||
public static <T> int updateWhere(final T data, final QueryOption... option) throws Exception {
|
||||
final Class<?> clazz = data.getClass();
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
@ -931,7 +931,7 @@ public class DataAccess {
|
||||
query.append("UPDATE `");
|
||||
query.append(tableName);
|
||||
query.append("` SET ");
|
||||
|
||||
|
||||
boolean firstField = true;
|
||||
for (final Field field : clazz.getFields()) {
|
||||
// static field is only for internal global declaration ==> remove it ..
|
||||
@ -978,7 +978,7 @@ public class DataAccess {
|
||||
query.append(" ");
|
||||
final String deletedFieldName = AnnotationTools.getDeletedFieldName(clazz);
|
||||
condition.whereAppendQuery(query, tableName, null, deletedFieldName);
|
||||
|
||||
|
||||
// If the first field is not set, then nothing to update n the main base:
|
||||
if (!firstField) {
|
||||
LOGGER.debug("generate the query: '{}'", query.toString());
|
||||
@ -1024,7 +1024,7 @@ public class DataAccess {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void addElement(final PreparedStatement ps, final Object value, final CountInOut iii) throws Exception {
|
||||
if (value instanceof final Long tmp) {
|
||||
LOGGER.debug("Inject Long => {}", tmp);
|
||||
@ -1069,21 +1069,21 @@ public class DataAccess {
|
||||
throw new DataAccessException("Not manage type ==> need to add it ...");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static int executeSimpleQuerry(final String query, final QueryOption... option) throws SQLException, IOException {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final DBEntry entry = DBInterfaceOption.getAutoEntry(options);
|
||||
final Statement stmt = entry.connection.createStatement();
|
||||
return stmt.executeUpdate(query);
|
||||
}
|
||||
|
||||
|
||||
public static boolean executeQuerry(final String query, final QueryOption... option) throws SQLException, IOException {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final DBEntry entry = DBInterfaceOption.getAutoEntry(options);
|
||||
final Statement stmt = entry.connection.createStatement();
|
||||
return stmt.execute(query);
|
||||
}
|
||||
|
||||
|
||||
public static <T> T getWhere(final Class<T> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
options.add(new Limit(1));
|
||||
@ -1093,12 +1093,12 @@ public class DataAccess {
|
||||
}
|
||||
return values.get(0);
|
||||
}
|
||||
|
||||
|
||||
public static void generateSelectField(final StringBuilder querySelect, final StringBuilder query, final Class<?> clazz, final QueryOptions options, final CountInOut count) throws Exception {
|
||||
final boolean readAllfields = QueryOptions.readAllColomn(options);
|
||||
final String tableName = AnnotationTools.getTableName(clazz, options);
|
||||
boolean firstField = true;
|
||||
|
||||
|
||||
for (final Field elem : clazz.getFields()) {
|
||||
// static field is only for internal global declaration ==> remove it ..
|
||||
if (java.lang.reflect.Modifier.isStatic(elem.getModifiers())) {
|
||||
@ -1129,12 +1129,12 @@ public class DataAccess {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <T> List<T> getsWhere(final Class<T> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
return getsWhere(clazz, options);
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> List<T> getsWhere(final Class<T> clazz, final QueryOptions options) throws Exception {
|
||||
Condition condition = options.get(Condition.class);
|
||||
@ -1155,7 +1155,7 @@ public class DataAccess {
|
||||
query.append(" FROM `");
|
||||
query.append(tableName);
|
||||
query.append("` ");
|
||||
|
||||
|
||||
generateSelectField(querySelect, query, clazz, options, count);
|
||||
querySelect.append(query.toString());
|
||||
query = querySelect;
|
||||
@ -1199,7 +1199,7 @@ public class DataAccess {
|
||||
}
|
||||
return outs;
|
||||
}
|
||||
|
||||
|
||||
public static Object createObjectFromSQLRequest(final ResultSet rs, final Class<?> clazz, final CountInOut count, final CountInOut countNotNull, final QueryOptions options,
|
||||
final List<LazyGetter> lazyCall) throws Exception {
|
||||
final boolean readAllfields = QueryOptions.readAllColomn(options);
|
||||
@ -1234,11 +1234,11 @@ public class DataAccess {
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> long count(final Class<?> clazz, final ID_TYPE id) throws Exception {
|
||||
return DataAccess.countWhere(clazz, new Condition(getTableIdCondition(clazz, id)));
|
||||
}
|
||||
|
||||
|
||||
public static long countWhere(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
Condition condition = options.get(Condition.class);
|
||||
@ -1284,25 +1284,25 @@ public class DataAccess {
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
public static <T, ID_TYPE> T get(final Class<T> clazz, final ID_TYPE id, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
options.add(new Condition(getTableIdCondition(clazz, id)));
|
||||
return DataAccess.getWhere(clazz, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static <T> List<T> gets(final Class<T> clazz) throws Exception {
|
||||
return getsWhere(clazz);
|
||||
}
|
||||
|
||||
|
||||
public static <T> List<T> gets(final Class<T> clazz, final QueryOption... option) throws Exception {
|
||||
return getsWhere(clazz, option);
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> int delete(final Class<?> clazz, final ID_TYPE id) throws Exception {
|
||||
return delete(clazz, id, null);
|
||||
}
|
||||
|
||||
|
||||
/** Delete items with the specific Id (cf @Id) and some options. If the Entity is manage as a softDeleted model, then it is flag as removed (if not already done before).
|
||||
* @param <ID_TYPE> Type of the reference @Id
|
||||
* @param clazz Data model that might remove element
|
||||
@ -1317,14 +1317,14 @@ public class DataAccess {
|
||||
return deleteHard(clazz, id, options);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Delete items with the specific condition and some options. If the Entity is manage as a softDeleted model, then it is flag as removed (if not already done before).
|
||||
* @param clazz Data model that might remove element.
|
||||
* @param condition Condition to remove elements.
|
||||
* @param options (Optional) Options of the request.
|
||||
* @return Number of element that is removed. */
|
||||
public static int deleteWhere(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
|
||||
|
||||
final String hasDeletedFieldName = AnnotationTools.getDeletedFieldName(clazz);
|
||||
if (hasDeletedFieldName != null) {
|
||||
return deleteSoftWhere(clazz, option);
|
||||
@ -1332,13 +1332,13 @@ public class DataAccess {
|
||||
return deleteHardWhere(clazz, option);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> int deleteHard(final Class<?> clazz, final ID_TYPE id, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
options.add(new Condition(getTableIdCondition(clazz, id)));
|
||||
return deleteHardWhere(clazz, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static int deleteHardWhere(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final Condition condition = options.get(Condition.class);
|
||||
@ -1364,13 +1364,13 @@ public class DataAccess {
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static <ID_TYPE> int deleteSoft(final Class<?> clazz, final ID_TYPE id, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
options.add(new Condition(getTableIdCondition(clazz, id)));
|
||||
return deleteSoftWhere(clazz, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static int deleteSoftWhere(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final Condition condition = options.get(Condition.class);
|
||||
@ -1401,17 +1401,17 @@ public class DataAccess {
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> int unsetDelete(final Class<?> clazz, final ID_TYPE id) throws Exception {
|
||||
return unsetDeleteWhere(clazz, new Condition(getTableIdCondition(clazz, id)));
|
||||
}
|
||||
|
||||
|
||||
public static <ID_TYPE> int unsetDelete(final Class<?> clazz, final ID_TYPE id, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
options.add(new Condition(getTableIdCondition(clazz, id)));
|
||||
return unsetDeleteWhere(clazz, options.getAllArray());
|
||||
}
|
||||
|
||||
|
||||
public static int unsetDeleteWhere(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final Condition condition = options.get(Condition.class);
|
||||
@ -1442,7 +1442,7 @@ public class DataAccess {
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void drop(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final String tableName = AnnotationTools.getTableName(clazz, options);
|
||||
@ -1474,7 +1474,7 @@ public class DataAccess {
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void cleanAll(final Class<?> clazz, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
final String tableName = AnnotationTools.getTableName(clazz, options);
|
||||
@ -1507,43 +1507,52 @@ public class DataAccess {
|
||||
entry = null;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
- useful code to manage external query: List<T> query<T>(class<T> clazz, );
|
||||
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
|
||||
*/
|
||||
public static <TYPE> List<TYPE> query(final Class<TYPE> clazz, String query, List<Object> parameters, final QueryOption... option) throws Exception {
|
||||
|
||||
/* - useful code to manage external query: List<T> query<T>(class<T> clazz, ); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2"); */
|
||||
public static <TYPE> List<TYPE> query(final Class<TYPE> clazz, final String query, final List<Object> parameters, final QueryOption... option) throws Exception {
|
||||
final QueryOptions options = new QueryOptions(option);
|
||||
return query(clazz, query, parameters, options);
|
||||
}
|
||||
|
||||
public static <TYPE> List<TYPE> query(final Class<TYPE> clazz, final String queryBase, final List<Object> parameters, final QueryOptions options) throws Exception {
|
||||
final List<LazyGetter> lazyCall = new ArrayList<>();
|
||||
// TODO ... final String deletedFieldName = AnnotationTools.getDeletedFieldName(clazz);
|
||||
final DBEntry entry = DBInterfaceOption.getAutoEntry(options);
|
||||
|
||||
Condition condition = options.get(Condition.class);
|
||||
if (condition == null) {
|
||||
condition = new Condition();
|
||||
}
|
||||
final StringBuilder query = new StringBuilder(queryBase);
|
||||
final List<TYPE> outs = new ArrayList<>();
|
||||
// real add in the BDD:
|
||||
try {
|
||||
final CountInOut count = new CountInOut();
|
||||
condition.whereAppendQuery(query, null, options, null);
|
||||
LOGGER.warn("generate the query: '{}'", query.toString());
|
||||
// prepare the request:
|
||||
final PreparedStatement ps = entry.connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
||||
final PreparedStatement ps = entry.connection.prepareStatement(query.toString(), Statement.RETURN_GENERATED_KEYS);
|
||||
final CountInOut iii = new CountInOut(1);
|
||||
if (parameters != null) {
|
||||
for (Object elem : parameters) {
|
||||
for (final Object elem : parameters) {
|
||||
DataAccess.addElement(ps, elem, iii);
|
||||
}
|
||||
iii.inc();
|
||||
}
|
||||
condition.injectQuerry(ps, iii);
|
||||
// execute the request
|
||||
final ResultSet rs = ps.executeQuery();
|
||||
ResultSetMetaData rsmd = rs.getMetaData();
|
||||
List<RetreiveFromDB> actionToRetreive = new ArrayList<>();
|
||||
final ResultSetMetaData rsmd = rs.getMetaData();
|
||||
final List<RetreiveFromDB> actionToRetreive = new ArrayList<>();
|
||||
for (int jjj = 0; jjj < rsmd.getColumnCount(); jjj++) {
|
||||
String name = rsmd.getColumnName(jjj + 1);
|
||||
final String name = rsmd.getColumnName(jjj + 1);
|
||||
// find field name ...
|
||||
Field field = AnnotationTools.getFieldNamed(clazz, name);
|
||||
final Field field = AnnotationTools.getFieldNamed(clazz, name);
|
||||
if (field == null) {
|
||||
throw new DataAccessException("Querry with unknown field: '" + name + "'");
|
||||
}
|
||||
// create the callback...
|
||||
RetreiveFromDB element = createSetValueFromDbCallback(jjj + 1, field);
|
||||
final RetreiveFromDB element = createSetValueFromDbCallback(jjj + 1, field);
|
||||
actionToRetreive.add(element);
|
||||
}
|
||||
|
||||
@ -1559,7 +1568,7 @@ public class DataAccess {
|
||||
if (data == null) {
|
||||
// TODO...
|
||||
} else {
|
||||
for (RetreiveFromDB action : actionToRetreive) {
|
||||
for (final RetreiveFromDB action : actionToRetreive) {
|
||||
action.doRequest(rs, data);
|
||||
}
|
||||
}
|
||||
@ -1581,5 +1590,5 @@ public class DataAccess {
|
||||
}
|
||||
return outs;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -17,6 +17,10 @@ public class QueryAnd implements QueryItem {
|
||||
Collections.addAll(this.childs, items);
|
||||
}
|
||||
|
||||
public void add(final QueryItem... items) {
|
||||
Collections.addAll(this.childs, items);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateQuerry(final StringBuilder query, final String tableName) {
|
||||
if (this.childs.size() >= 1) {
|
||||
@ -43,4 +47,8 @@ public class QueryAnd implements QueryItem {
|
||||
elem.injectQuerry(ps, iii);
|
||||
}
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.childs.size();
|
||||
}
|
||||
}
|
||||
|
@ -15,8 +15,10 @@ public class QueryCondition implements QueryItem {
|
||||
|
||||
@Override
|
||||
public void generateQuerry(final StringBuilder query, final String tableName) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
if (tableName != null) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
}
|
||||
query.append(this.key);
|
||||
query.append(" ");
|
||||
query.append(this.comparator);
|
||||
|
@ -24,8 +24,10 @@ public class QueryInList<T> implements QueryItem {
|
||||
|
||||
@Override
|
||||
public void generateQuerry(final StringBuilder query, final String tableName) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
if (tableName != null) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
}
|
||||
query.append(this.key);
|
||||
query.append(" ");
|
||||
query.append(this.comparator);
|
||||
|
24
src/org/kar/archidata/dataAccess/QueryNotNull.java
Normal file
24
src/org/kar/archidata/dataAccess/QueryNotNull.java
Normal file
@ -0,0 +1,24 @@
|
||||
package org.kar.archidata.dataAccess;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
||||
public class QueryNotNull implements QueryItem {
|
||||
private final String key;
|
||||
|
||||
public QueryNotNull(final String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateQuerry(final StringBuilder query, final String tableName) {
|
||||
if (tableName != null) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
}
|
||||
query.append(this.key);
|
||||
query.append(" IS NOT NULL");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception {}
|
||||
}
|
24
src/org/kar/archidata/dataAccess/QueryNull.java
Normal file
24
src/org/kar/archidata/dataAccess/QueryNull.java
Normal file
@ -0,0 +1,24 @@
|
||||
package org.kar.archidata.dataAccess;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
||||
public class QueryNull implements QueryItem {
|
||||
private final String key;
|
||||
|
||||
public QueryNull(final String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateQuerry(final StringBuilder query, final String tableName) {
|
||||
if (tableName != null) {
|
||||
query.append(tableName);
|
||||
query.append(".");
|
||||
}
|
||||
query.append(this.key);
|
||||
query.append(" IS NULL");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception {}
|
||||
}
|
@ -15,30 +15,30 @@ public class QueryOptions {
|
||||
public static final ReadAllColumn READ_ALL_COLOMN = new ReadAllColumn();
|
||||
public static final AccessDeletedItems ACCESS_DELETED_ITEMS = new AccessDeletedItems();
|
||||
public static final CreateDropTable CREATE_DROP_TABLE = new CreateDropTable();
|
||||
|
||||
|
||||
private final List<QueryOption> options = new ArrayList<>();
|
||||
|
||||
|
||||
public QueryOptions() {}
|
||||
|
||||
|
||||
public QueryOptions(final QueryOption... elems) {
|
||||
if (elems == null || elems.length == 0) {
|
||||
return;
|
||||
}
|
||||
Collections.addAll(this.options, elems);
|
||||
}
|
||||
|
||||
|
||||
public void add(final QueryOption option) {
|
||||
this.options.add(option);
|
||||
}
|
||||
|
||||
|
||||
public List<QueryOption> getAll() {
|
||||
return this.options;
|
||||
}
|
||||
|
||||
|
||||
public QueryOption[] getAllArray() {
|
||||
return this.options.toArray(new QueryOption[0]);
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T get(final Class<T> type) {
|
||||
for (final QueryOption elem : this.options) {
|
||||
@ -48,7 +48,7 @@ public class QueryOptions {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public boolean exist(final Class<?> type) {
|
||||
for (final QueryOption elem : this.options) {
|
||||
if (elem.getClass() == type) {
|
||||
@ -57,7 +57,7 @@ public class QueryOptions {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static boolean readAllColomn(final QueryOptions options) {
|
||||
if (options != null) {
|
||||
return options.exist(ReadAllColumn.class);
|
||||
|
@ -12,12 +12,12 @@ public class DBInterfaceOption extends QueryOption {
|
||||
private DBEntry entry = null;
|
||||
private final DBConfig config;
|
||||
private final boolean root;
|
||||
|
||||
|
||||
public DBInterfaceOption(final DBConfig config) {
|
||||
this.config = config;
|
||||
this.root = false;
|
||||
}
|
||||
|
||||
|
||||
public DBInterfaceOption(final DBConfig config, boolean root) {
|
||||
this.config = config;
|
||||
this.root = root;
|
||||
@ -30,11 +30,11 @@ public class DBInterfaceOption extends QueryOption {
|
||||
}
|
||||
return this.entry;
|
||||
}
|
||||
|
||||
|
||||
public boolean getRoot() {
|
||||
return this.root;
|
||||
}
|
||||
|
||||
|
||||
public static DBEntry getAutoEntry(QueryOptions options) throws IOException {
|
||||
final DBInterfaceOption dbOption = options.get(DBInterfaceOption.class);
|
||||
if (dbOption == null) {
|
||||
@ -44,5 +44,5 @@ public class DBInterfaceOption extends QueryOption {
|
||||
return dbOption.getEntry(options);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import org.kar.archidata.dataAccess.QueryOption;
|
||||
|
||||
public class DBInterfaceRoot extends QueryOption {
|
||||
private final boolean root;
|
||||
|
||||
|
||||
public DBInterfaceRoot(boolean root) {
|
||||
this.root = root;
|
||||
}
|
||||
@ -12,5 +12,5 @@ public class DBInterfaceRoot extends QueryOption {
|
||||
public boolean getRoot() {
|
||||
return this.root;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
49
src/org/kar/archidata/serializer/CSVMessageBodyWriter.java
Normal file
49
src/org/kar/archidata/serializer/CSVMessageBodyWriter.java
Normal file
@ -0,0 +1,49 @@
|
||||
package org.kar.archidata.serializer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
|
||||
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.MultivaluedMap;
|
||||
import jakarta.ws.rs.ext.MessageBodyWriter;
|
||||
import jakarta.ws.rs.ext.Provider;
|
||||
|
||||
/** Body writer use in jersey with : In your main: ```java rc.register(new CSVMessageBodyWritter()); ```
|
||||
*
|
||||
* and in the produce element: ```java
|
||||
* @GET
|
||||
* @Produces(CSVMessageBodyWritter.CSV_TYPE) public List<Data> getData() {} ``` */
|
||||
@Provider
|
||||
@Produces("text/csv")
|
||||
public class CSVMessageBodyWriter implements MessageBodyWriter<List<Object>> {
|
||||
public static final String CSV_TYPE = "text/csv";
|
||||
|
||||
@Override
|
||||
public boolean isWriteable(final Class<?> type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) {
|
||||
return List.class.isAssignableFrom(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getSize(final List<Object> data, final Class<?> type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeTo(final List<Object> data, final Class<?> type, final Type genericType, final Annotation[] annotations, final MediaType mediaType,
|
||||
final MultivaluedMap<String, Object> httpHeaders, final OutputStream entityStream) throws IOException, WebApplicationException {
|
||||
if (data != null && data.size() > 0) {
|
||||
final CsvMapper mapper = new CsvMapper();
|
||||
final Object o = data.get(0);
|
||||
final CsvSchema schema = mapper.schemaFor(o.getClass()).withHeader();
|
||||
mapper.writer(schema).writeValue(entityStream, data);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
package org.kar.archidata.serializer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
|
||||
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.MultivaluedMap;
|
||||
import jakarta.ws.rs.ext.MessageBodyWriter;
|
||||
import jakarta.ws.rs.ext.Provider;
|
||||
|
||||
/**
|
||||
* Body writter use in jersey with :
|
||||
* In your main:
|
||||
* ```java
|
||||
* rc.register(new CSVMessageBodyWritter());
|
||||
* ```
|
||||
*
|
||||
* and in the produce element:
|
||||
* ```java
|
||||
* @GET
|
||||
* @Produces("text/csv")
|
||||
* public List<Data> getData() {}
|
||||
* ```
|
||||
*/
|
||||
@Provider
|
||||
@Produces("text/csv")
|
||||
public class CSVMessageBodyWritter implements MessageBodyWriter<List<?>> {
|
||||
|
||||
@Override
|
||||
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
|
||||
return List.class.isAssignableFrom(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getSize(List<?> data, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeTo(List<?> data, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream)
|
||||
throws IOException, WebApplicationException {
|
||||
if (data != null && data.size() > 0) {
|
||||
CsvMapper mapper = new CsvMapper();
|
||||
Object o = data.get(0);
|
||||
CsvSchema schema = mapper.schemaFor(o.getClass()).withHeader();
|
||||
mapper.writer(schema).writeValue(entityStream, data);
|
||||
}
|
||||
}
|
||||
}
|
@ -26,7 +26,7 @@ import test.kar.archidata.model.SimpleTable;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestJson {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestJson.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -39,14 +39,14 @@ public class TestJson {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testTableInsertAndRetrieve() throws Exception {
|
||||
@ -56,26 +56,26 @@ public class TestJson {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testIO() throws Exception {
|
||||
final SerializeAsJson test = new SerializeAsJson();
|
||||
test.data = new SimpleTable();
|
||||
test.data.data = "plopppopql";
|
||||
|
||||
|
||||
final SerializeAsJson insertedData = DataAccess.insert(test);
|
||||
|
||||
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
Assertions.assertNotNull(insertedData.data);
|
||||
Assertions.assertNotNull(insertedData.data.data);
|
||||
Assertions.assertEquals(test.data.data, insertedData.data.data);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final SerializeAsJson retrieve = DataAccess.get(SerializeAsJson.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertTrue(retrieve.id >= 0);
|
||||
@ -83,5 +83,5 @@ public class TestJson {
|
||||
Assertions.assertNotNull(retrieve.data.data);
|
||||
Assertions.assertEquals(test.data.data, retrieve.data.data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import test.kar.archidata.model.SerializeListAsJson;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestListJson {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestListJson.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -39,14 +39,14 @@ public class TestListJson {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testTableInsertAndRetrieve() throws Exception {
|
||||
@ -56,7 +56,7 @@ public class TestListJson {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testIO() throws Exception {
|
||||
@ -67,9 +67,9 @@ public class TestListJson {
|
||||
test.data.add(8);
|
||||
test.data.add(6);
|
||||
test.data.add(51);
|
||||
|
||||
|
||||
final SerializeListAsJson insertedData = DataAccess.insert(test);
|
||||
|
||||
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
@ -80,10 +80,10 @@ public class TestListJson {
|
||||
Assertions.assertEquals(test.data.get(2), insertedData.data.get(2));
|
||||
Assertions.assertEquals(test.data.get(3), insertedData.data.get(3));
|
||||
Assertions.assertEquals(test.data.get(4), insertedData.data.get(4));
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final SerializeListAsJson retrieve = DataAccess.get(SerializeListAsJson.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertTrue(retrieve.id >= 0);
|
||||
@ -95,5 +95,5 @@ public class TestListJson {
|
||||
Assertions.assertEquals(test.data.get(3), retrieve.data.get(3));
|
||||
Assertions.assertEquals(test.data.get(4), retrieve.data.get(4));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ import test.kar.archidata.model.TypeManyToManyRootExpand;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestManyToMany {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestManyToMany.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -41,14 +41,14 @@ public class TestManyToMany {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -60,7 +60,7 @@ public class TestManyToMany {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testSimpleInsertAndRetieve() throws Exception {
|
||||
@ -71,34 +71,34 @@ public class TestManyToMany {
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
Assertions.assertNull(insertedData.remote);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypeManyToManyRoot retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.otherData);
|
||||
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
|
||||
Assertions.assertNull(retrieve.remote);
|
||||
|
||||
|
||||
DataAccess.delete(TypeManyToManyRoot.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(3)
|
||||
@Test
|
||||
public void testSimpleInsertAndRetieveSubValues() throws Exception {
|
||||
|
||||
|
||||
TypeManyToManyRemote remote = new TypeManyToManyRemote();
|
||||
remote.data = "remote1";
|
||||
final TypeManyToManyRemote insertedRemote1 = DataAccess.insert(remote);
|
||||
Assertions.assertEquals(insertedRemote1.data, remote.data);
|
||||
|
||||
|
||||
remote = new TypeManyToManyRemote();
|
||||
remote.data = "remote2";
|
||||
final TypeManyToManyRemote insertedRemote2 = DataAccess.insert(remote);
|
||||
Assertions.assertEquals(insertedRemote2.data, remote.data);
|
||||
|
||||
|
||||
final TypeManyToManyRoot test = new TypeManyToManyRoot();
|
||||
test.otherData = "kjhlkjlkj";
|
||||
final TypeManyToManyRoot insertedData = DataAccess.insert(test);
|
||||
@ -106,23 +106,23 @@ public class TestManyToMany {
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
Assertions.assertNull(insertedData.remote);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
TypeManyToManyRoot retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.otherData);
|
||||
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
|
||||
Assertions.assertNull(retrieve.remote);
|
||||
|
||||
|
||||
// Add remote elements
|
||||
AddOnManyToMany.addLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote1.id);
|
||||
AddOnManyToMany.addLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote2.id);
|
||||
|
||||
|
||||
retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -132,9 +132,9 @@ public class TestManyToMany {
|
||||
Assertions.assertEquals(retrieve.remote.size(), 2);
|
||||
Assertions.assertEquals(retrieve.remote.get(0), insertedRemote1.id);
|
||||
Assertions.assertEquals(retrieve.remote.get(1), insertedRemote2.id);
|
||||
|
||||
|
||||
final TypeManyToManyRootExpand retrieveExpand = DataAccess.get(TypeManyToManyRootExpand.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieveExpand);
|
||||
Assertions.assertNotNull(retrieveExpand.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieveExpand.id);
|
||||
@ -144,13 +144,13 @@ public class TestManyToMany {
|
||||
Assertions.assertEquals(retrieveExpand.remote.size(), 2);
|
||||
Assertions.assertEquals(retrieveExpand.remote.get(0).id, insertedRemote1.id);
|
||||
Assertions.assertEquals(retrieveExpand.remote.get(1).id, insertedRemote2.id);
|
||||
|
||||
|
||||
// Remove an element
|
||||
int count = AddOnManyToMany.removeLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote1.id);
|
||||
Assertions.assertEquals(1, count);
|
||||
|
||||
|
||||
retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -159,23 +159,23 @@ public class TestManyToMany {
|
||||
Assertions.assertNotNull(retrieve.remote);
|
||||
Assertions.assertEquals(retrieve.remote.size(), 1);
|
||||
Assertions.assertEquals(retrieve.remote.get(0), insertedRemote2.id);
|
||||
|
||||
|
||||
// Remove the second element
|
||||
count = AddOnManyToMany.removeLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote2.id);
|
||||
Assertions.assertEquals(1, count);
|
||||
|
||||
|
||||
retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.otherData);
|
||||
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
|
||||
Assertions.assertNull(retrieve.remote);
|
||||
|
||||
|
||||
DataAccess.delete(TypeManyToManyRoot.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
/* API TODO: - Replace list (permet de les ordonnées) - remove all links - delete en cascade .... (compliqué...) */
|
||||
|
||||
|
||||
}
|
@ -27,7 +27,7 @@ import test.kar.archidata.model.TypeManyToOneRootExpand;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestManyToOne {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestManyToOne.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -40,14 +40,14 @@ public class TestManyToOne {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -59,7 +59,7 @@ public class TestManyToOne {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testAddAlements() throws Exception {
|
||||
@ -67,12 +67,12 @@ public class TestManyToOne {
|
||||
remote.data = "remote1";
|
||||
final TypeManyToOneRemote insertedRemote1 = DataAccess.insert(remote);
|
||||
Assertions.assertEquals(insertedRemote1.data, remote.data);
|
||||
|
||||
|
||||
remote = new TypeManyToOneRemote();
|
||||
remote.data = "remote2";
|
||||
final TypeManyToOneRemote insertedRemote2 = DataAccess.insert(remote);
|
||||
Assertions.assertEquals(insertedRemote2.data, remote.data);
|
||||
|
||||
|
||||
final TypeManyToOneRoot test = new TypeManyToOneRoot();
|
||||
test.otherData = "kjhlkjlkj";
|
||||
test.remoteId = insertedRemote2.id;
|
||||
@ -82,14 +82,14 @@ public class TestManyToOne {
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
Assertions.assertEquals(test.otherData, insertedData.otherData);
|
||||
Assertions.assertEquals(insertedRemote2.id, insertedData.remoteId);
|
||||
|
||||
|
||||
TypeManyToOneRoot retrieve = DataAccess.get(TypeManyToOneRoot.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
|
||||
Assertions.assertEquals(insertedRemote2.id, retrieve.remoteId);
|
||||
|
||||
|
||||
TypeManyToOneRootExpand retrieve2 = DataAccess.get(TypeManyToOneRootExpand.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve2);
|
||||
Assertions.assertNotNull(retrieve2.id);
|
||||
@ -98,20 +98,20 @@ public class TestManyToOne {
|
||||
Assertions.assertNotNull(retrieve2.remote);
|
||||
Assertions.assertEquals(insertedRemote2.id, retrieve2.remote.id);
|
||||
Assertions.assertEquals(insertedRemote2.data, retrieve2.remote.data);
|
||||
|
||||
|
||||
// remove values:
|
||||
final int count = DataAccess.delete(TypeManyToOneRemote.class, remote.id);
|
||||
Assertions.assertEquals(1, count);
|
||||
|
||||
|
||||
// check fail:
|
||||
|
||||
|
||||
retrieve = DataAccess.get(TypeManyToOneRoot.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
|
||||
Assertions.assertEquals(insertedRemote2.id, retrieve.remoteId);
|
||||
|
||||
|
||||
retrieve2 = DataAccess.get(TypeManyToOneRootExpand.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve2);
|
||||
Assertions.assertNotNull(retrieve2.id);
|
||||
|
@ -24,7 +24,7 @@ import test.kar.archidata.model.TypesTable;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestOneToMany {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestOneToMany.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -37,14 +37,14 @@ public class TestOneToMany {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -54,10 +54,10 @@ public class TestOneToMany {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testPlop() throws Exception {
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -25,7 +25,7 @@ import test.kar.archidata.model.TypesTable;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestRawQuery {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypes.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -38,14 +38,14 @@ public class TestRawQuery {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -55,11 +55,11 @@ public class TestRawQuery {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testGet() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.intData = 95;
|
||||
test.floatData = 1.0F;
|
||||
@ -92,7 +92,7 @@ public class TestRawQuery {
|
||||
List<Object> parameters = List.of(Integer.valueOf(99));
|
||||
// Try to retrieve all the data:
|
||||
final List<TypesTable> retrieve = DataAccess.query(TypesTable.class, querry, parameters);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertEquals(3, retrieve.size());
|
||||
Assertions.assertEquals(99, retrieve.get(0).intData);
|
||||
@ -101,7 +101,7 @@ public class TestRawQuery {
|
||||
Assertions.assertEquals(5.0F, retrieve.get(2).floatData);
|
||||
}
|
||||
{
|
||||
|
||||
|
||||
String querry = """
|
||||
SELECT DISTINCT intData
|
||||
FROM TypesTable
|
||||
@ -111,11 +111,11 @@ public class TestRawQuery {
|
||||
List<Object> parameters = List.of(Integer.valueOf(99));
|
||||
// Try to retrieve all the data:
|
||||
final List<TypesTable> retrieve = DataAccess.query(TypesTable.class, querry, parameters);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertEquals(1, retrieve.size());
|
||||
Assertions.assertEquals(99, retrieve.get(0).intData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -33,7 +33,7 @@ public class TestSimpleTable {
|
||||
private static final String DATA_INJECTED_2 = "dsqfsdfqsdfsqdf";
|
||||
private static Long idOfTheObject = null;
|
||||
private static Timestamp startAction = null;
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -45,19 +45,19 @@ public class TestSimpleTable {
|
||||
// Clear the static test:
|
||||
idOfTheObject = null;
|
||||
startAction = null;
|
||||
|
||||
|
||||
// Connect the dataBase...
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testTableInsertAndRetrieve() throws Exception {
|
||||
@ -70,14 +70,14 @@ public class TestSimpleTable {
|
||||
final SimpleTable test = new SimpleTable();
|
||||
test.data = TestSimpleTable.DATA_INJECTED;
|
||||
final SimpleTable insertedData = DataAccess.insert(test);
|
||||
|
||||
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -86,13 +86,13 @@ public class TestSimpleTable {
|
||||
Assertions.assertNull(retrieve.updatedAt);
|
||||
TestSimpleTable.idOfTheObject = retrieve.id;
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testReadAllValuesUnreadable() throws Exception {
|
||||
// check the full values
|
||||
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject, QueryOptions.READ_ALL_COLOMN);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(TestSimpleTable.idOfTheObject, retrieve.id);
|
||||
@ -105,7 +105,7 @@ public class TestSimpleTable {
|
||||
// Assertions.assertTrue(retrieve.updatedAt.after(this.startAction));
|
||||
Assertions.assertEquals(retrieve.createdAt, retrieve.updatedAt);
|
||||
}
|
||||
|
||||
|
||||
@Order(3)
|
||||
@Test
|
||||
public void testUpdateData() throws Exception {
|
||||
@ -124,7 +124,7 @@ public class TestSimpleTable {
|
||||
LOGGER.info("created @ {} updated @ {}", retrieve.createdAt, retrieve.updatedAt);
|
||||
Assertions.assertTrue(retrieve.updatedAt.after(retrieve.createdAt));
|
||||
}
|
||||
|
||||
|
||||
@Order(4)
|
||||
@Test
|
||||
public void testDeleteTheObject() throws Exception {
|
||||
@ -133,23 +133,23 @@ public class TestSimpleTable {
|
||||
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject);
|
||||
Assertions.assertNull(retrieve);
|
||||
}
|
||||
|
||||
|
||||
@Order(5)
|
||||
@Test
|
||||
public void testReadDeletedObject() throws Exception {
|
||||
|
||||
|
||||
// check if we set get deleted element
|
||||
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject, QueryOptions.ACCESS_DELETED_ITEMS);
|
||||
Assertions.assertNull(retrieve);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Order(6)
|
||||
@Test
|
||||
public void testReadAllValuesUnreadableOfDeletedObject() throws Exception {
|
||||
// check if we set get deleted element with all data
|
||||
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject, QueryOptions.ACCESS_DELETED_ITEMS, QueryOptions.READ_ALL_COLOMN);
|
||||
Assertions.assertNull(retrieve);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ public class TestSimpleTableSoftDelete {
|
||||
private static final String DATA_INJECTED_2 = "qsdfqsdfqsdfsqdf";
|
||||
private static Long idOfTheObject = null;
|
||||
private static Timestamp startAction = null;
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -45,19 +45,19 @@ public class TestSimpleTableSoftDelete {
|
||||
// Clear the static test:
|
||||
idOfTheObject = null;
|
||||
startAction = null;
|
||||
|
||||
|
||||
// Connect the dataBase...
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testTableInsertAndRetrieve() throws Exception {
|
||||
@ -70,14 +70,14 @@ public class TestSimpleTableSoftDelete {
|
||||
final SimpleTableSoftDelete test = new SimpleTableSoftDelete();
|
||||
test.data = TestSimpleTableSoftDelete.DATA_INJECTED;
|
||||
final SimpleTableSoftDelete insertedData = DataAccess.insert(test);
|
||||
|
||||
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -87,13 +87,13 @@ public class TestSimpleTableSoftDelete {
|
||||
Assertions.assertNull(retrieve.deleted);
|
||||
TestSimpleTableSoftDelete.idOfTheObject = retrieve.id;
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testReadAllValuesUnreadable() throws Exception {
|
||||
// check the full values
|
||||
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject, QueryOptions.READ_ALL_COLOMN);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(TestSimpleTableSoftDelete.idOfTheObject, retrieve.id);
|
||||
@ -108,12 +108,12 @@ public class TestSimpleTableSoftDelete {
|
||||
Assertions.assertNotNull(retrieve.deleted);
|
||||
Assertions.assertEquals(false, retrieve.deleted);
|
||||
}
|
||||
|
||||
|
||||
@Order(3)
|
||||
@Test
|
||||
public void testUpdateData() throws Exception {
|
||||
Thread.sleep(Duration.ofMillis(15));
|
||||
|
||||
|
||||
// Delete the entry:
|
||||
final SimpleTableSoftDelete test = new SimpleTableSoftDelete();
|
||||
test.data = TestSimpleTableSoftDelete.DATA_INJECTED_2;
|
||||
@ -130,7 +130,7 @@ public class TestSimpleTableSoftDelete {
|
||||
Assertions.assertNotNull(retrieve.deleted);
|
||||
Assertions.assertEquals(false, retrieve.deleted);
|
||||
}
|
||||
|
||||
|
||||
@Order(4)
|
||||
@Test
|
||||
public void testSoftDeleteTheObject() throws Exception {
|
||||
@ -144,11 +144,11 @@ public class TestSimpleTableSoftDelete {
|
||||
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject);
|
||||
Assertions.assertNull(retrieve);
|
||||
}
|
||||
|
||||
|
||||
@Order(5)
|
||||
@Test
|
||||
public void testReadDeletedObject() throws Exception {
|
||||
|
||||
|
||||
// check if we set get deleted element
|
||||
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject, QueryOptions.ACCESS_DELETED_ITEMS);
|
||||
Assertions.assertNotNull(retrieve);
|
||||
@ -158,9 +158,9 @@ public class TestSimpleTableSoftDelete {
|
||||
Assertions.assertNull(retrieve.createdAt);
|
||||
Assertions.assertNull(retrieve.updatedAt);
|
||||
Assertions.assertNull(retrieve.deleted);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Order(6)
|
||||
@Test
|
||||
public void testReadAllValuesUnreadableOfDeletedObject() throws Exception {
|
||||
@ -176,6 +176,6 @@ public class TestSimpleTableSoftDelete {
|
||||
Assertions.assertTrue(retrieve.updatedAt.after(retrieve.createdAt));
|
||||
Assertions.assertNotNull(retrieve.deleted);
|
||||
Assertions.assertEquals(true, retrieve.deleted);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import test.kar.archidata.model.TypesEnum1;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestTypeEnum1 {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypeEnum1.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -39,14 +39,14 @@ public class TestTypeEnum1 {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -56,27 +56,27 @@ public class TestTypeEnum1 {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testEnum() throws Exception {
|
||||
|
||||
|
||||
final TypesEnum1 test = new TypesEnum1();
|
||||
test.data = Enum1ForTest.ENUM_VALUE_3;
|
||||
final TypesEnum1 insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesEnum1 retrieve = DataAccess.get(TypesEnum1.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.data);
|
||||
Assertions.assertEquals(insertedData.data, retrieve.data);
|
||||
|
||||
|
||||
DataAccess.delete(TypesEnum1.class, insertedData.id);
|
||||
}
|
||||
}
|
@ -26,7 +26,7 @@ import test.kar.archidata.model.TypesEnum2;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestTypeEnum2 {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypeEnum2.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -39,14 +39,14 @@ public class TestTypeEnum2 {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -56,18 +56,18 @@ public class TestTypeEnum2 {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testEnum() throws Exception {
|
||||
|
||||
|
||||
final TypesEnum2 test = new TypesEnum2();
|
||||
test.data = Enum2ForTest.ENUM_VALUE_4;
|
||||
final TypesEnum2 insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
TypesEnum2 retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve);
|
||||
@ -75,47 +75,47 @@ public class TestTypeEnum2 {
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.data);
|
||||
Assertions.assertEquals(insertedData.data, retrieve.data);
|
||||
|
||||
|
||||
// Update data to null
|
||||
retrieve.data = null;
|
||||
int ret = DataAccess.update(retrieve, retrieve.id);
|
||||
Assertions.assertEquals(1, ret);
|
||||
|
||||
|
||||
// get new data
|
||||
retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNull(retrieve.data);
|
||||
|
||||
|
||||
// Remove the data
|
||||
ret = DataAccess.delete(TypesEnum2.class, insertedData.id);
|
||||
Assertions.assertEquals(1, ret);
|
||||
|
||||
|
||||
// Get the removed data:
|
||||
retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
|
||||
Assertions.assertNull(retrieve);
|
||||
}
|
||||
|
||||
|
||||
@Order(3)
|
||||
@Test
|
||||
public void testNull() throws Exception {
|
||||
|
||||
|
||||
final TypesEnum2 test = new TypesEnum2();
|
||||
test.data = null;
|
||||
final TypesEnum2 insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesEnum2 retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNull(retrieve.data);
|
||||
|
||||
|
||||
DataAccess.delete(TypesEnum2.class, insertedData.id);
|
||||
}
|
||||
}
|
@ -30,7 +30,7 @@ import test.kar.archidata.model.TypesTable;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TestTypes {
|
||||
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypes.class);
|
||||
|
||||
|
||||
@BeforeAll
|
||||
public static void configureWebServer() throws Exception {
|
||||
if (!"true".equalsIgnoreCase(System.getenv("TEST_E2E_MODE"))) {
|
||||
@ -43,14 +43,14 @@ public class TestTypes {
|
||||
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
|
||||
entry.connect();
|
||||
}
|
||||
|
||||
|
||||
@AfterAll
|
||||
public static void removeDataBase() throws IOException {
|
||||
LOGGER.info("Remove the test db");
|
||||
DBEntry.closeAllForceMode();
|
||||
ConfigBaseVariable.clearAllValue();
|
||||
}
|
||||
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
public void testCreateTable() throws Exception {
|
||||
@ -60,195 +60,195 @@ public class TestTypes {
|
||||
DataAccess.executeSimpleQuerry(elem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Order(2)
|
||||
@Test
|
||||
public void testInteger() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.intData = 95;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.intData);
|
||||
Assertions.assertEquals(insertedData.intData, retrieve.intData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(3)
|
||||
@Test
|
||||
public void testLong() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.longData = 541684354354L;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.longData);
|
||||
Assertions.assertEquals(insertedData.longData, retrieve.longData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(4)
|
||||
@Test
|
||||
public void testfloat() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.floatData = 153154.0f;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.floatData);
|
||||
Assertions.assertEquals(insertedData.floatData, retrieve.floatData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(5)
|
||||
@Test
|
||||
public void testDouble() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.doubleData = 153152654654.0;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.doubleData);
|
||||
Assertions.assertEquals(insertedData.doubleData, retrieve.doubleData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(6)
|
||||
@Test
|
||||
public void testText() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.textData = "lkjlkjlkjmlkqjsdùkljqsùmckljvùwxmckvmwlkdnfqmsjdvnmclkwsjdn;vbcm <wkdjncvm<wk:dnxcm<lwkdnc mqs<wdn:cx,<nm wlx!k:cn<;wmlx:!c;,<wmlx!:c;n<wm ldx:;c,<nwmlx:c,;<wmlx!:c;,< w";
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.textData);
|
||||
Assertions.assertEquals(insertedData.textData, retrieve.textData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(7)
|
||||
@Test
|
||||
public void testVarChar() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.varcharData = "123456789123456789";
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.varcharData);
|
||||
Assertions.assertEquals(insertedData.varcharData, retrieve.varcharData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(8)
|
||||
@Test
|
||||
public void testBooleanTrue() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.booleanData = true;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.booleanData);
|
||||
Assertions.assertEquals(insertedData.booleanData, retrieve.booleanData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(9)
|
||||
@Test
|
||||
public void testBooleanFalse() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.booleanData = false;
|
||||
final TypesTable insertedData = DataAccess.insert(test);
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
Assertions.assertNotNull(retrieve.booleanData);
|
||||
Assertions.assertEquals(insertedData.booleanData, retrieve.booleanData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(10)
|
||||
@Test
|
||||
public void testTimeStamp() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.timeStampData = Timestamp.from(Instant.now());
|
||||
LOGGER.debug("Timestamp = {}", test.timeStampData);
|
||||
@ -256,10 +256,10 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -268,14 +268,14 @@ public class TestTypes {
|
||||
// Can not compare the exact timestamp due to aproximation and model of storing data :
|
||||
// Assertions.assertEquals(insertedData.timeStampData, retrieve.timeStampData);
|
||||
Assertions.assertEquals(insertedData.timeStampData.toInstant().toEpochMilli(), retrieve.timeStampData.toInstant().toEpochMilli());
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(11)
|
||||
@Test
|
||||
public void testDate() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.dateFullData = Date.from(Instant.now());
|
||||
LOGGER.debug("Date = {}", test.dateFullData);
|
||||
@ -283,24 +283,24 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
LOGGER.debug("Retreive Date = {}", retrieve.dateFullData);
|
||||
Assertions.assertNotNull(retrieve.dateFullData);
|
||||
Assertions.assertEquals(insertedData.dateFullData, retrieve.dateFullData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(12)
|
||||
@Test
|
||||
public void testLocalDate() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.dateData = LocalDate.now();
|
||||
LOGGER.debug("LocalDate = {}", test.dateData);
|
||||
@ -308,24 +308,24 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
LOGGER.debug("Retreive LocalDate = {}", retrieve.dateData);
|
||||
Assertions.assertNotNull(retrieve.dateData);
|
||||
Assertions.assertEquals(insertedData.dateData, retrieve.dateData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(13)
|
||||
@Test
|
||||
public void testLocalTime() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.timeData = LocalTime.now();
|
||||
LOGGER.debug("LocalTime = {}", test.timeData);
|
||||
@ -333,10 +333,10 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -345,14 +345,14 @@ public class TestTypes {
|
||||
Assertions.assertEquals(insertedData.timeData.getHour(), retrieve.timeData.getHour());
|
||||
Assertions.assertEquals(insertedData.timeData.getMinute(), retrieve.timeData.getMinute());
|
||||
Assertions.assertEquals(insertedData.timeData.getSecond(), retrieve.timeData.getSecond());
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(14)
|
||||
@Test
|
||||
public void testTextUpdateDirect() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.textData = "test 1";
|
||||
test.booleanData = null;
|
||||
@ -361,10 +361,10 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -373,17 +373,17 @@ public class TestTypes {
|
||||
Assertions.assertNull(retrieve.booleanData);
|
||||
Assertions.assertNotNull(retrieve.varcharData);
|
||||
Assertions.assertEquals(insertedData.varcharData, retrieve.varcharData);
|
||||
|
||||
|
||||
// Update the text value:
|
||||
retrieve.textData = "test 2";
|
||||
retrieve.booleanData = true;
|
||||
retrieve.varcharData = null;
|
||||
final int nbUpdate = DataAccess.update(retrieve, insertedData.id);
|
||||
Assertions.assertEquals(1, nbUpdate);
|
||||
|
||||
|
||||
// Get new data
|
||||
final TypesTable retrieve2 = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve2);
|
||||
Assertions.assertNotNull(retrieve2.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve2.id);
|
||||
@ -392,17 +392,17 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(retrieve2.booleanData);
|
||||
Assertions.assertEquals(retrieve.booleanData, retrieve2.booleanData);
|
||||
Assertions.assertNull(retrieve2.varcharData);
|
||||
|
||||
|
||||
// test filter values:
|
||||
retrieve.textData = "test 3";
|
||||
retrieve.booleanData = false;
|
||||
retrieve.varcharData = "test3";
|
||||
final int nbUpdate2 = DataAccess.update(retrieve, insertedData.id, List.of("textData"));
|
||||
Assertions.assertEquals(1, nbUpdate2);
|
||||
|
||||
|
||||
// Get new data
|
||||
final TypesTable retrieve3 = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve3);
|
||||
Assertions.assertNotNull(retrieve3.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve3.id);
|
||||
@ -412,14 +412,14 @@ public class TestTypes {
|
||||
// note: retreive2
|
||||
Assertions.assertEquals(retrieve2.booleanData, retrieve3.booleanData);
|
||||
Assertions.assertNull(retrieve3.varcharData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
@Order(15)
|
||||
@Test
|
||||
public void testTextUpdateJson() throws Exception {
|
||||
|
||||
|
||||
final TypesTable test = new TypesTable();
|
||||
test.textData = "test 1";
|
||||
test.booleanData = null;
|
||||
@ -428,10 +428,10 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(insertedData);
|
||||
Assertions.assertNotNull(insertedData.id);
|
||||
Assertions.assertTrue(insertedData.id >= 0);
|
||||
|
||||
|
||||
// Try to retrieve all the data:
|
||||
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve);
|
||||
Assertions.assertNotNull(retrieve.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve.id);
|
||||
@ -440,7 +440,7 @@ public class TestTypes {
|
||||
Assertions.assertNull(retrieve.booleanData);
|
||||
Assertions.assertNotNull(retrieve.varcharData);
|
||||
Assertions.assertEquals(insertedData.varcharData, retrieve.varcharData);
|
||||
|
||||
|
||||
// Update the text value:
|
||||
final String jsonData = """
|
||||
{
|
||||
@ -451,10 +451,10 @@ public class TestTypes {
|
||||
""";
|
||||
final int nbUpdate = DataAccess.updateWithJson(TypesTable.class, insertedData.id, jsonData, null);
|
||||
Assertions.assertEquals(1, nbUpdate);
|
||||
|
||||
|
||||
// Get new data
|
||||
final TypesTable retrieve2 = DataAccess.get(TypesTable.class, insertedData.id);
|
||||
|
||||
|
||||
Assertions.assertNotNull(retrieve2);
|
||||
Assertions.assertNotNull(retrieve2.id);
|
||||
Assertions.assertEquals(insertedData.id, retrieve2.id);
|
||||
@ -463,8 +463,8 @@ public class TestTypes {
|
||||
Assertions.assertNotNull(retrieve2.booleanData);
|
||||
Assertions.assertEquals(true, retrieve2.booleanData);
|
||||
Assertions.assertNull(retrieve2.varcharData);
|
||||
|
||||
|
||||
DataAccess.delete(TypesTable.class, insertedData.id);
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user