繁体   English   中英

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

[英]ORMLite id is always null (does not have an id field)

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

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

您同时设置了“ id = true”和“ generatedId = true”属性。 您能删除'id = true'看看会发生什么吗?

您正在创建,更新或删除的Dao应该同步。 使用时

com.j256.ormlite.dao.BaseDaoImpl.createOrUpdate()

ormlite extractId来查看是否可以更新,然后去更新该特定行。

如果有并行线程,则删除具有id的行。

Ormlite抛出java.sql.SQLException,说“ 没有id字段

如果已同步,Dao可以访问表操作,那么您应该很好。

synchronized (objectDao){
                 objectDao.createOrUpdate(object);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM