Ormlite Join没有外键异常

时间:2013-01-09 22:31:48

标签: join foreign-keys ormlite

我在连接工作时遇到问题,两个表定义如下:

public class Student { 
    @ForeignCollectionField(eager = true, columnName = STUDENT_INSTANCE_COLLECTION_NAME)
    private ForeignCollection<StudentInstance> studentInstances;

    ...
}

public class StudentInstance {
    public static final String STUDENT_ID_COLUMN = "student_id";
    public static final String REGISTER_ID_COLUMN = "register_id";

    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField(canBeNull = false, foreign = true)
    private Student student;

    @DatabaseField(canBeNull = false, foreign = true)
    private Register register;

   ...

}

活动代码:

public List<Student> getStudents( int registerId ) {
    QueryBuilder<StudentInstance, Integer> studentInstanceQb =  studentInstanceDao.getDAO().queryBuilder();
    studentInstanceQb.where().eq(StudentInstance.REGISTER_ID_COLUMN, registerId);
    QueryBuilder<Student, Integer> studentQb =  getDAO().queryBuilder();    
    studentQb.join(studentInstanceQb).query();
}

当我运行代码时,我得到了异常:

  

getStudents出错:java.sql.SQLException:找不到外来的   class com.beardedhen.roster.db.entity.Student in class in class   com.beardedhen.roster.db.entity.StudentInstance,反之亦然

这可能是一个愚蠢的错误,但我用它打了一堵完整的砖墙。

感谢您的帮助,

安迪

1 个答案:

答案 0 :(得分:0)

看一下QueryBuilder。 matchJoinedFields(),异常来自。您将看到当前(4.42)实现如何检查表并查找连接的连接列。