ORMLite ID字段无法比较

时间:2017-10-25 12:08:19

标签: java android ormlite

我有几个类,所有类都有一个ID字段,声明为<h3>Fullført Jobber</h3> <div style="overflow-x: auto;"> <table class="table table-responsive" id="jobs-table"> <tr> <th>Jobb ID</th> <th>Brukernavn</th> <th>Kundenavn</th> <th>Jobbsted</th> <th>Jobbtype</th> <th>Note 1</th> <th>Time Start</th> <th>Time brukt</th> </tr> @foreach($jobs as $job) @if(!$job->deleted_at == null) <tr> <td>{!! $job->id !!}</td> <td>{!! $job->user_name !!}</td> <td>{!! $job->customer_name !!}</td> <td>{!! $job->job_place !!}</td> <td>{!! $job->job_type !!}</td> <td>{!! $job->note_1 !!}</td> <td>{!! $job->created_at !!}</td> <td>{!! \Carbon\Carbon::parse($job->deleted_at)->diff(\Carbon\Carbon::parse($job->created_at))->format('%H:%I:%S')!!}<td> </tr> @endif @endforeach </table> 的下一个方式:

Integer

Everything编译并正确运行,但当我只是尝试检查记录是否存在时:

@Expose
@DatabaseField(columnName = "_id", id = true)
private Integer idField;

我得到例外:

Integer idField = 1;
result = DBHelper.getHelper().getClassDAO().idExists(idField);

问题在于,有一个类(让它命名为A),该方法正常工作,但其他方法失败,我不知道哪个是原因,因为所有类都有其ID字段以同样的方式宣布。 如果我尝试java.sql.SQLException: Field '_id' is of data type null which can not be compared 任何类的对象,除了引用的类A,我也会得到这个异常。

任何帮助之手都会受到赞赏。

请注意。该项目使用createOrUpdate文件,该文件已更新。

1 个答案:

答案 0 :(得分:0)

经过几个小时的调试后,我发现只有当要保存的类有一个或多个集合时才会出现上述异常。据我所知,Dao类的idExists方法中会抛出异常。考虑到createOrSave方法肯定必须调用它,这就是我在两种情况下都得到SQLException的原因。

现在,解决此问题的解决方法。我不得不调用idExists方法,而是创建自己的方法:

return DBHelper.getHelper().getMyDAO().queryForId(idField) != null;

而不是调用createOrUpdate方法,首先检查记录是否存在,然后根据结果调用Dao类的createupdate方法想坚持下去。