Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b527ee2
Add ModelSetup to unify setup codes
TimothyGillespie Mar 21, 2021
e2fc84b
Abstracted away QueryStringBuilder from query tree to allow implement…
JanHolger Mar 30, 2021
a3f1387
Added test action for feature branches
JanHolger Mar 30, 2021
057e32a
Fixed the failing test
JanHolger Mar 30, 2021
26da182
Merge remote-tracking branch 'origin/master' into maintenance
JanHolger Mar 30, 2021
bddf070
Merged master and fixed broken calls due to local changes
JanHolger Mar 30, 2021
aba6336
Merge remote-tracking branch 'origin/master' into maintenance
JanHolger Mar 30, 2021
478ef58
Added validation for operators and non raw column names
JanHolger Mar 30, 2021
b22b7e8
Added validation for operators and non raw column names
JanHolger Mar 30, 2021
480b883
Merge branch 'master' into TimothyGillespie/addOrderByTests
TimothyGillespie Mar 31, 2021
49e4fa0
Add assertOrderByContains method
TimothyGillespie Mar 31, 2021
8aaedb2
Add SectionIndexOutOfBoundException
TimothyGillespie Mar 31, 2021
1ae8ac8
Add retrieval methods for the sections
TimothyGillespie Mar 31, 2021
5d4e233
Add JavaDocs for getSectionList too
TimothyGillespie Mar 31, 2021
89c48dc
Add JavaDocs for getSectionList too
TimothyGillespie Mar 31, 2021
51907a4
Reorder methods more logically
TimothyGillespie Mar 31, 2021
ac7140e
Add assertSectionEquals method
TimothyGillespie Mar 31, 2021
5491a48
Remove OrderBy specific contains method
TimothyGillespie Mar 31, 2021
6f97433
Make assertion methods chainable
TimothyGillespie Mar 31, 2021
b73d7db
Add better fitting internal assert for the equal assertion
TimothyGillespie Mar 31, 2021
710b6c5
Add tests for OrderBy Clauses
TimothyGillespie Mar 31, 2021
9e857cf
Merge branch 'TimothyGillespie/addOrderByTests' of github.com:JavaWeb…
TimothyGillespie Mar 31, 2021
0201c3d
Added extra fields to Model and added QueryWith but didn't yet implem…
JanHolger Mar 31, 2021
e4d3fc0
Remove explicit ASC as discussed
TimothyGillespie Apr 1, 2021
abdab9e
Add JavaDocs for QueryGroup
TimothyGillespie Apr 2, 2021
0a684f9
Add equals and hashcode overwrite to QueryColumn
TimothyGillespie Apr 2, 2021
17a7060
Add multiple order by capability
TimothyGillespie Apr 2, 2021
0037a3a
Merge branch 'TimothyGillespie/enableMultipleOrderBy' into TimothyGil…
TimothyGillespie Apr 2, 2021
fb00e4d
Adjust MySQL Query Building for the new OrderBy and fix OrderBy test
TimothyGillespie Apr 2, 2021
018ce02
Add test to assert the correct sort priority
TimothyGillespie Apr 2, 2021
c8e9a40
Add error case for calling order on same column twice
TimothyGillespie Apr 2, 2021
37ed312
Add note of purpose of OrderByClauseTest
TimothyGillespie Apr 2, 2021
5a74b53
Add JavaDocs to QueryOrderBy
TimothyGillespie Apr 2, 2021
5210447
Add JavaDocs to QueryOrderByElement
TimothyGillespie Apr 2, 2021
3bff425
Add JavaDocs to the order method on Query
TimothyGillespie Apr 2, 2021
e88bd3f
Merge pull request #21 from JavaWebStack/TimothyGillespie/addOrderByT…
TimothyGillespie Apr 2, 2021
289aa8a
Removed manual migrations
JanHolger Apr 27, 2021
f6a1498
Merge pull request #24 from JavaWebStack/TimothyGillespie/enableMulti…
JanHolger Apr 27, 2021
a74ab07
Merge remote-tracking branch 'origin/master' into maintenance
JanHolger Apr 27, 2021
e241a39
Merge remote-tracking branch 'origin/maintenance' into maintenance
JanHolger Apr 27, 2021
54ad3d7
Removed injector
JanHolger Apr 28, 2021
6d2ed0c
Add script to start database docker container
TimothyGillespie Apr 28, 2021
5c11dbe
Fill OnlyIdModel
TimothyGillespie Apr 28, 2021
a770745
Add Getter to OnlyIdModel
TimothyGillespie Apr 28, 2021
2c5365c
Add order by query execution test
TimothyGillespie Apr 28, 2021
d464bc9
Change query building tests appropriately
TimothyGillespie Apr 28, 2021
1e9baf4
Fix minor issues
TimothyGillespie Apr 28, 2021
335f633
Convert column names to snake case
TimothyGillespie Apr 28, 2021
f52c9e3
Revert "Convert column names to snake case"
TimothyGillespie Apr 30, 2021
09dcc4c
Correct spelling mistake in class name
TimothyGillespie Apr 30, 2021
e625333
Add test for overwritten column names
TimothyGillespie Apr 30, 2021
2e35155
Adjust tests to reflect non snake case of non existant columns
TimothyGillespie Apr 30, 2021
15db24b
Fix order by naming bug
TimothyGillespie Apr 30, 2021
912bd78
Address sonar cube concerns
TimothyGillespie Apr 30, 2021
ad1c2d6
Merge pull request #26 from JavaWebStack/TimothyGillespie/lookAtOrderBy
JanHolger May 12, 2021
e7fa451
Merge remote-tracking branch 'origin/master' into maintenance
JanHolger May 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/maven-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Maven Test
on:
push:
branches:
- '**'
- '!master'

jobs:
test:
runs-on: ubuntu-latest
services:
mysql:
image: mariadb:latest
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_RANDOM_ROOT_PASSWORD: yes
ports:
- 3306
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Test
run: mvn -B test
env:
MYSQL_PORT: ${{ job.services.mysql.ports[3306] }}
MYSQL_USERNAME: test
MYSQL_PASSWORD: test
5 changes: 0 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,6 @@
<artifactId>reflections</artifactId>
<version>0.9.12</version>
</dependency>
<dependency>
<groupId>org.javawebstack</groupId>
<artifactId>Injector</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.javawebstack</groupId>
<artifactId>AbstractData</artifactId>
Expand Down
17 changes: 9 additions & 8 deletions src/main/java/org/javawebstack/orm/Model.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.javawebstack.orm;

import org.javawebstack.injector.Injector;
import org.javawebstack.orm.query.Query;

import java.lang.reflect.Field;
Expand All @@ -22,7 +21,6 @@ public class Model {
private static final Method refreshMethod;

{
inject();
updateOriginal();
}

Expand All @@ -41,6 +39,7 @@ public class Model {
private transient boolean internalEntryExists = false;
private transient final Map<Class<? extends Model>, Object> internalJoinedModels = new HashMap<>();
private transient Map<String, Object> internalOriginalValues = new HashMap<>();
private transient Map<String, Object> internalExtraFields = new HashMap<>();

void internalAddJoinedModel(Class<? extends Model> type, Object entity) {
internalJoinedModels.put(type, entity);
Expand All @@ -62,6 +61,14 @@ public Map<String, Object> getFieldValues() {
return values;
}

public Map<String, Object> getExtraFields() {
return internalExtraFields;
}

public <T> T getExtraField(String key) {
return (T) internalExtraFields.get(key);
}

public Map<String, Object> getOriginalValues() {
return internalOriginalValues;
}
Expand Down Expand Up @@ -114,12 +121,6 @@ void setEntryExists(boolean exists) {
this.internalEntryExists = exists;
}

public void inject() {
Injector injector = Repo.get(getClass()).getInfo().getConfig().getInjector();
if (injector != null)
injector.inject(this);
}

public void save() {
try {
saveMethod.invoke(ORM.repo(getClass()), this);
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/org/javawebstack/orm/ORMConfig.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.javawebstack.orm;

import org.javawebstack.injector.Injector;
import org.javawebstack.orm.exception.ORMConfigurationException;
import org.javawebstack.orm.mapper.DefaultMapper;
import org.javawebstack.orm.mapper.TypeMapper;
Expand All @@ -15,7 +14,6 @@ public class ORMConfig {
private boolean idPrimaryKey = true;
private boolean idAutoIncrement = true;
private final List<TypeMapper> typeMappers = new ArrayList<>();
private Injector injector;
private boolean preventUnnecessaryUpdates = true;

public ORMConfig() {
Expand Down Expand Up @@ -55,11 +53,6 @@ public ORMConfig setIdAutoIncrement(boolean idAutoIncrement) {
return this;
}

public ORMConfig setInjector(Injector injector) {
this.injector = injector;
return this;
}

public boolean isCamelToSnakeCase() {
return camelToSnakeCase;
}
Expand All @@ -84,10 +77,6 @@ public boolean isIdAutoIncrement() {
return idAutoIncrement;
}

public Injector getInjector() {
return injector;
}

public TypeMapper getTypeMapper(Class<?> type, int size) {
for (TypeMapper mapper : getTypeMappers()) {
SQLType sqlType = mapper.getType(type, size);
Expand Down
23 changes: 3 additions & 20 deletions src/main/java/org/javawebstack/orm/Repo.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.javawebstack.orm.migration.AutoMigrator;
import org.javawebstack.orm.query.Query;
import org.javawebstack.orm.wrapper.SQL;
import org.javawebstack.orm.wrapper.builder.SQLQueryString;

import java.lang.reflect.Field;
import java.sql.SQLException;
Expand Down Expand Up @@ -100,8 +101,6 @@ public void save(T entry) {
}

public void create(T entry) {
if (info.getConfig().getInjector() != null)
info.getConfig().getInjector().inject(entry);
observers.forEach(o -> o.saving(entry));
observers.forEach(o -> o.creating(entry));
executeCreate(entry);
Expand All @@ -124,28 +123,14 @@ private void executeCreate(T entry) {
if (field.get(entry) == null)
field.set(entry, UUID.randomUUID());
}
List<Object> params = new ArrayList<>();
StringBuilder sb = new StringBuilder("INSERT INTO `");
sb.append(info.getTableName());
sb.append("` (");
List<String> cols = new ArrayList<>();
List<String> values = new ArrayList<>();
Map<String, Object> map = SQLMapper.map(this, entry);
if (info.isAutoIncrement()) {
String idCol = info.getColumnName(info.getIdField());
if (map.containsKey(idCol) && map.get(idCol) == null)
map.remove(idCol);
}
for (String columnName : map.keySet()) {
cols.add("`" + columnName + "`");
values.add("?");
params.add(map.get(columnName));
}
sb.append(String.join(",", cols));
sb.append(") VALUES (");
sb.append(String.join(",", values));
sb.append(");");
int id = connection.write(sb.toString(), params.toArray());
SQLQueryString qs = getConnection().builder().buildInsert(info, map);
int id = connection.write(qs.getQuery(), qs.getParameters().toArray());
if (info.isAutoIncrement())
info.getField(info.getIdField()).set(entry, id);
entry.setEntryExists(true);
Expand Down Expand Up @@ -237,8 +222,6 @@ public Object getId(Object entity) {
}

public Repo<T> observe(Observer<T> observer) {
if (info.getConfig().getInjector() != null)
info.getConfig().getInjector().inject(observer);
observers.add(observer);
return this;
}
Expand Down
6 changes: 0 additions & 6 deletions src/main/java/org/javawebstack/orm/SQLMapper.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.javawebstack.orm;

import org.javawebstack.injector.Injector;
import org.javawebstack.orm.exception.ORMQueryException;
import org.javawebstack.orm.mapper.DefaultMapper;
import org.javawebstack.orm.mapper.TypeMapper;
Expand All @@ -27,14 +26,9 @@ public static <T extends Model> List<T> map(Repo<T> repo, ResultSet rs, List<Cla
try {
while (rs.next()) {
T t = (T) repo.getInfo().getModelConstructor().newInstance();
Injector injector = repo.getInfo().getConfig().getInjector();
if (injector != null)
injector.inject(t);
for (Class<? extends Model> model : joinedModels) {
Repo<Model> r = Repo.get((Class<Model>) model);
Model o = (Model) r.getInfo().getModelConstructor().newInstance();
if (injector != null)
injector.inject(o);
t.internalAddJoinedModel(model, mapBack(r, rs, o));
}
list.add(mapBack(repo, rs, t));
Expand Down
Loading