Join Ormlite联接没有外键异常

Join Ormlite联接没有外键异常,join,foreign-keys,ormlite,Join,Foreign Keys,Ormlite,我在连接工作时遇到问题,两个表定义如下: public class Student { @ForeignCollectionField(eager = true, columnName = STUDENT_INSTANCE_COLLECTION_NAME) private ForeignCollection<StudentInstance> studentInstances; ... } public class StudentInstance {

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

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;

   ...

}
公共班级学生{
@ForeignCollectionField(eager=true,columnName=STUDENT\u实例\u集合\u名称)
私人收藏外国学生的设施;
...
}
公共班级学生实习{
公共静态最终字符串STUDENT\u ID\u COLUMN=“STUDENT\u ID”;
公共静态最终字符串寄存器\u ID\u COLUMN=“寄存器\u ID”;
@数据库字段(generatedId=true)
私有int-id;
@数据库字段(canBeNull=false,foreign=true)
私立学生;
@数据库字段(canBeNull=false,foreign=true)
私人登记册;
...
}
活动代码:

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(int registerId){
QueryBuilder studentInstanceQb=studentInstanceDao.getDAO().QueryBuilder();
studentInstanceQb.where().eq(StudentInstance.REGISTER\u ID\u列,registerId);
QueryBuilder studentQb=getDAO().QueryBuilder();
join(studentInstanceQb.query();
}
当我运行代码时,我得到一个异常:

getStudents上出错:java.sql.SQLException:找不到外部 类com.beardedhen.lotus.db.entity.Student字段在类中 com.beardedhen.lotus.db.entity.StudentInstance,反之亦然

这可能是一个愚蠢的错误,但我已经彻底失败了

谢谢你的帮助


安迪

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