java - ORMLite id 始终为 null(没有 id 字段)

标签 java android database orm ormlite

我一生都无法弄清楚这一点。 所以在我的请求对象中我有

@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/

相关文章:

java - textFields 上的无限焦点循环

java - 无法加载 hibernate.cfg.xml

android - 通过 R 类迭代

android - 在移动设备上停止旋转

java - 基于搜索字符串插入文本的字符串正则表达式

android - 是否可以在 webview 的 sdcard/cache 中打开 pdf 文件存储?

database - oracle数据库的sqlplus如何列出一个表中的所有数据?

database - MS Access,使用查询名称作为字段默认值

database - 数据库表设计建议

java - 如何使用 jdk 1.6.0_20 在 Eclipse 3.6 中配置 tomcat 7?