我一生都无法弄清楚这一点。 所以在我的请求对象中我有
@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 应该是自动创建的? 我在 OrmLites BaseDaoImpl 类中看到有一个 extractId 方法,其中包含以下行:
FieldType idField = tableInfo.getIdField();
它始终为空。任何人都对我如何解决这个问题有任何见解。 谢谢
最佳答案
FieldType idField = tableInfo.getIdField();
... Which is always null.
问题似乎出在你的实体上,与保存点无关。不知何故,DAO 生成的 tableInfo
与您的实体不匹配。如果 entityId
字段在您的类中,那么我怀疑您的 ormlite_config.txt
文件尚未更新。
关于java - ORMLite id 始终为 null(没有 id 字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615500/