Skip to content

Commit

Permalink
- updated documentation
Browse files Browse the repository at this point in the history
- the union and union all querying was improved
  • Loading branch information
vzakharchenko committed Mar 12, 2020
1 parent 9a64c21 commit 59b16a0
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 7 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,16 @@ how it works:
firstTable,
DynamicTableModel.class);
```
- limit and offset
```java
ormQueryFactory.selectCache().findOne(ormQueryFactory
.buildQuery()
.from(firstTable).limit(3).offset(3)
.where(firstTable.getNumberColumnByName("newColumn").eq(122)),
firstTable,
DynamicTableModel.class);
```

- get column value from model
```java
String testStringColumnValue = firstTableFromDatabase.getValue("TestStringColumn", String.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.github.vzakharchenko.dynamic.orm.core.predicate;

import com.querydsl.core.types.*;
import com.querydsl.core.types.Expression;
import com.querydsl.core.types.Ops;
import com.querydsl.core.types.Predicate;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.Expressions;

import java.util.Objects;

/**
* Created with IntelliJ IDEA.
* User: vassio
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,30 @@ public void testUpdatePartWhereWithoutPrimaryKey() {
assertEquals(tableModel2.getValue("TestColumn", String.class), "newValue");
}


@Test
public void testDeleteWithoutPrimaryKey() {

qDynamicTableFactory.buildTables("DynamicTable2")
.addColumns()
.addDateTimeColumn("modificationTime").notNull().create()
.addStringColumn("TestColumn").size(255).create()
.finish()
.addVersionColumn("modificationTime")
.finish()
.buildSchema();

QDynamicTable dynamicTable = qDynamicTableFactory.getQDynamicTableByName("DynamicTable2");
DynamicTableModel dynamicTableModel = new DynamicTableModel(dynamicTable);
dynamicTableModel.addColumnValue("TestColumn", "testData");
ormQueryFactory.insert(dynamicTableModel);
ormQueryFactory.modify(dynamicTable, DynamicTableModel.class)
.delete(dynamicTableModel).delete();

DynamicTableModel tableModel2 = ormQueryFactory.select().findOne(ormQueryFactory.buildQuery(), dynamicTable, DynamicTableModel.class);
assertNull(tableModel2);
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.github.vzakharchenko.dynamic.orm.core.dynamic.QDynamicTable;
import com.github.vzakharchenko.dynamic.orm.core.dynamic.dml.DynamicTableModel;
import com.github.vzakharchenko.dynamic.orm.core.pk.PrimaryKeyGenerators;
import com.github.vzakharchenko.dynamic.orm.core.predicate.PredicateFactory;
import com.github.vzakharchenko.dynamic.orm.model.TestTableVersionAnnotation;
import com.github.vzakharchenko.dynamic.orm.qModel.QTestTableVersionAnnotation;
import org.testng.annotations.BeforeMethod;
Expand Down Expand Up @@ -72,10 +73,15 @@ public void limitOffsetTest() {
TestTableVersionAnnotation value5 = new TestTableVersionAnnotation();
ormQueryFactory.insert(value1, value2, value3, value4, value5);

List<TestTableVersionAnnotation> limit = ormQueryFactory.select().findAll(ormQueryFactory.buildQuery().limit(3), TestTableVersionAnnotation.class);
assertEquals(limit.size(), 3);
List<TestTableVersionAnnotation> limit = ormQueryFactory.select()
.findAll(ormQueryFactory.buildQuery().limit(3),
TestTableVersionAnnotation.class);

List<TestTableVersionAnnotation> offset = ormQueryFactory.select()
.findAll(ormQueryFactory.buildQuery().limit(3).offset(3),
TestTableVersionAnnotation.class);

List<TestTableVersionAnnotation> offset = ormQueryFactory.select().findAll(ormQueryFactory.buildQuery().limit(3).offset(3), TestTableVersionAnnotation.class);
assertEquals(limit.size(), 3);
assertEquals(offset.size(), 2);


Expand All @@ -88,6 +94,39 @@ private DynamicTableModel createDynamicModel(String testColumn) {
return dynamicTableModel;
}

@Test
public void alwaysFalseQuery() {
QDynamicTable dynamicTable = qDynamicTableFactory.getQDynamicTableByName("DynamicTable");
DynamicTableModel value1 = createDynamicModel("1");
DynamicTableModel value2 = createDynamicModel("2");
DynamicTableModel value3 = createDynamicModel("3");
DynamicTableModel value4 = createDynamicModel("4");
DynamicTableModel value5 = createDynamicModel("5");
PredicateFactory.alwaysFalsePredicate();

assertTrue(ormQueryFactory.select().notExist(ormQueryFactory
.buildQuery()
.from(dynamicTable)
.where(PredicateFactory.alwaysFalsePredicate())));

}
@Test
public void wrapWhere() {
QDynamicTable dynamicTable = qDynamicTableFactory.getQDynamicTableByName("DynamicTable");
DynamicTableModel value1 = createDynamicModel("1");
DynamicTableModel value2 = createDynamicModel("2");
DynamicTableModel value3 = createDynamicModel("3");
DynamicTableModel value4 = createDynamicModel("4");
DynamicTableModel value5 = createDynamicModel("5");
PredicateFactory.alwaysFalsePredicate();

assertTrue(ormQueryFactory.select().notExist(ormQueryFactory
.buildQuery()
.from(dynamicTable)
.where(PredicateFactory
.wrapPredicate(PredicateFactory.alwaysFalsePredicate().and(dynamicTable.getStringColumnByName("TestColumn").isNotNull())))));

}
@Test
public void limitOffsetDynamicTest() {

Expand All @@ -105,7 +144,7 @@ public void limitOffsetDynamicTest() {

List<DynamicTableModel> offset = ormQueryFactory.select().findAll(ormQueryFactory.buildQuery().limit(3).offset(3), dynamicTable, DynamicTableModel.class);
assertEquals(offset.size(), 2);
}


}
}

0 comments on commit 59b16a0

Please sign in to comment.