我一生无法解决这个问题。
所以在我的请求对象中
@DatabaseField(id = true, columnName = "ID", canBeNull = false, generatedId = true)
private int entityId;
每当我这样做我的插入方法时:
public void insert(T object) throws SQLException {
DatabaseConnection connection = objectDao.startThreadConnection();
Savepoint savepoint = null;
try {
savepoint = connection.setSavePoint(null);
objectDao.createOrUpdate(object);
} finally {
connection.commit(savepoint);
objectDao.endThreadConnection(connection);
}
}
我总是会收到这样的错误
Class class UnsyncTripRequest does not have an id field
我不确定为什么要从我理解的ID中自动获取ID的原因中得到此信息?
我在OrmLites BaseDaoImpl类中看到有一个extractId方法具有以下内容:
FieldType idField = tableInfo.getIdField();
始终为空。任何人都对我如何解决此问题有任何见识。
谢谢
最佳答案
FieldType idField = tableInfo.getIdField();
...始终为空。
问题似乎出在您的实体上,与保存点无关。 DAO生成的tableInfo
某种程度上与您的实体不匹配。如果您的班级中有entityId
字段,那么我怀疑您的ormlite_config.txt
文件尚未更新。