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 {
}
}
+ 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...
.select(new UserNote() {
{
userId = n.userId;
- noteId = n.noteId;
+ id = n.id;
text = n.text;
}
});
assertEquals(3, notes.size());
}
+ @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();
public static class UserNote {
@IQColumn(autoIncrement = true, primaryKey = true)
- public int noteId;
+ public int id;
@IQColumn
public int userId;