dig090

SpecificJoinTest

Dec 18th, 2013
738
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. package com.j256.ormlite.stmt;
  2.  
  3. import org.junit.Test;
  4.  
  5. import com.j256.ormlite.dao.Dao;
  6. import com.j256.ormlite.dao.ForeignCollection;
  7. import com.j256.ormlite.field.DatabaseField;
  8. import com.j256.ormlite.field.ForeignCollectionField;
  9.  
  10. public class SpecificJoinTest extends BaseCoreStmtTest {
  11.  
  12.     @Test
  13.     public void testSpecificJoinBug() throws Exception {
  14.         Dao<Category, Integer> categoryDao = createDao(Category.class, true);
  15.         Dao<Criterion, Integer> criterionDao = createDao(Criterion.class, true);
  16.  
  17.         QueryBuilder<Criterion, Integer> criteriaQb = criterionDao.queryBuilder();
  18.         criteriaQb.where().eq("active", Boolean.valueOf(true));
  19.  
  20.         QueryBuilder<Category, Integer> categoryQb = categoryDao.queryBuilder();
  21.         categoryQb.orderByRaw("id").join(criteriaQb).query();
  22.  
  23.         /*
  24.          * I see:
  25.          *
  26.          * 'SELECT `category`.* FROM `category` INNER JOIN `criterion` ON `category`.`id` = `criterion`.`category_id`
  27.          * WHERE `criterion`.`active` = true ORDER BY id ' returned 0 results
  28.          */
  29.     }
  30.  
  31.     /* ======================================================================================================== */
  32.  
  33.     protected static class BaseModel {
  34.         @DatabaseField(generatedId = true)
  35.         int id;
  36.     }
  37.  
  38.     protected static class Project extends BaseModel {
  39.         // nothing here
  40.     }
  41.  
  42.     protected static class Category extends BaseModel {
  43.  
  44.         @DatabaseField(canBeNull = false, foreign = true)
  45.         Project project;
  46.  
  47.         @ForeignCollectionField(eager = false)
  48.         ForeignCollection<Criterion> criteria;
  49.  
  50.         public Category() {
  51.         }
  52.     }
  53.  
  54.     protected static class Criterion extends BaseModel {
  55.         @DatabaseField
  56.         boolean active;
  57.  
  58.         @DatabaseField
  59.         Integer weight;
  60.  
  61.         @DatabaseField(canBeNull = false, foreign = true)
  62.         Category category;
  63.  
  64.         public Criterion() {
  65.         }
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment