我一生无法解决这个问题。
所以在我的请求对象中

@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文件尚未更新。

08-06 08:08