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)实现如何检查表并查找连接的列