summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruchicom <2980920+uchicom@users.noreply.github.com>2021-05-03 01:09:41 +0900
committerGitHub <noreply@github.com>2021-05-02 12:09:41 -0400
commit3ae6f66919787d279a78818605126bcdec8f9139 (patch)
treef509aa0bd3b2a89be88e0cfd12815c178eacfcba
parent7c0aec71814f5b1bf4f93a9186b945beec42c70b (diff)
downloadiciql-3ae6f66919787d279a78818605126bcdec8f9139.tar.gz
iciql-3ae6f66919787d279a78818605126bcdec8f9139.zip
simple join select (#39)
* simple join select * test for simple join select * test for simple join select
-rw-r--r--src/main/java/com/iciql/Query.java6
-rw-r--r--src/main/java/com/iciql/TableDefinition.java11
-rw-r--r--src/test/java/com/iciql/test/JoinTest.java15
3 files changed, 29 insertions, 3 deletions
diff --git a/src/main/java/com/iciql/Query.java b/src/main/java/com/iciql/Query.java
index d1528e8..e9404ec 100644
--- a/src/main/java/com/iciql/Query.java
+++ b/src/main/java/com/iciql/Query.java
@@ -291,7 +291,11 @@ public class Query<T> {
List<T> result = Utils.newArrayList();
TableDefinition<T> def = from.getAliasDefinition();
SQLStatement stat = getSelectStatement(distinct);
- def.appendSelectList(stat);
+ if (isJoin()) {
+ def.appendSelectList(stat, from.getAs());
+ } else {
+ def.appendSelectList(stat);
+ }
appendFromWhere(stat);
ResultSet rs = stat.executeQuery();
try {
diff --git a/src/main/java/com/iciql/TableDefinition.java b/src/main/java/com/iciql/TableDefinition.java
index fe273c0..05cdbf6 100644
--- a/src/main/java/com/iciql/TableDefinition.java
+++ b/src/main/java/com/iciql/TableDefinition.java
@@ -1150,6 +1150,17 @@ public class TableDefinition<T> {
}
}
+ void appendSelectList(SQLStatement stat, String as) {
+ for (int i = 0; i < fields.size(); i++) {
+ if (i > 0) {
+ stat.appendSQL(", ");
+ }
+ stat.appendSQL(as + ".");
+ FieldDefinition def = fields.get(i);
+ stat.appendColumn(def.columnName);
+ }
+ }
+
<Y, X> void appendSelectList(SQLStatement stat, Query<Y> query, X x) {
// select t0.col1, t0.col2, t0.col3...
// select table1.col1, table1.col2, table1.col3...
diff --git a/src/test/java/com/iciql/test/JoinTest.java b/src/test/java/com/iciql/test/JoinTest.java
index e3370b1..77523c5 100644
--- a/src/test/java/com/iciql/test/JoinTest.java
+++ b/src/test/java/com/iciql/test/JoinTest.java
@@ -58,7 +58,7 @@ public class JoinTest {
.select(new UserNote() {
{
userId = n.userId;
- noteId = n.noteId;
+ id = n.id;
text = n.text;
}
});
@@ -66,6 +66,17 @@ public class JoinTest {
}
@Test
+ public void testPrimitiveJoinAndSimpleSelect() throws Exception {
+ final UserId u = new UserId();
+ final UserNote n = new UserNote();
+
+ List<UserId> userIds = db.from(u).innerJoin(n).on(u.id).is(n.userId).where(n.text).is("D")
+ .select();
+ assertEquals(1, userIds.size());
+ assertEquals(1, userIds.get(0).id);
+ }
+
+ @Test
public void testJoin() throws Exception {
final UserId u = new UserId();
final UserNote n = new UserNote();
@@ -140,7 +151,7 @@ public class JoinTest {
public static class UserNote {
@IQColumn(autoIncrement = true, primaryKey = true)
- public int noteId;
+ public int id;
@IQColumn
public int userId;