Android Can';无法删除域中的行
我是领域编程的初学者。我编写了代码,可以在领域数据库中插入一些值。现在我想检查领域表中的项是否不同。第一次,我按键选择项目,如果存在,我将其删除,然后插入新项目。 这是我的密码Android Can';无法删除域中的行,android,realm,Android,Realm,我是领域编程的初学者。我编写了代码,可以在领域数据库中插入一些值。现在我想检查领域表中的项是否不同。第一次,我按键选择项目,如果存在,我将其删除,然后插入新项目。 这是我的密码 private void insertIntoDatabase() { mRealm.beginTransaction(); mRealm.executeTransaction(new Realm.Transaction() { @Override public void
private void insertIntoDatabase()
{
mRealm.beginTransaction();
mRealm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
RealmResults<VinScannerHistoryModel> rows =
realm.where(VinScannerHistoryModel.class)
.equalTo("userName",vinScannerModel.getName())
.equalTo("vinNumber",vinNumber.getText().toString())
.findAll();
if(rows!=null)
{
rows.clear();
realm.commitTransaction();
}
}
});
ImagesObject imagesObject = mRealm.createObject(ImagesObject.class);
VinScannerHistoryModel vinScannerHistoryModel = mRealm.createObject(VinScannerHistoryModel.class);
vinScannerHistoryModel.setVinNumber(vinNumber.getText().toString());
vinScannerHistoryModel.setStatus(status);
vinScannerHistoryModel.setManufacturer(manufacturer);
vinScannerHistoryModel.setModel(model);
vinScannerHistoryModel.setYear(year);
vinScannerHistoryModel.setVin(vin);
vinScannerHistoryModel.setTerminal_out_date(terminal_out_date);
if(Global.imagePath!=null && Global.imagePath.size()>0)
{
for (int i = 0; i < Global.imagePath.size(); i++) {
imagesObject.setImageName(Global.imagePath.get(i));
vinScannerHistoryModel.getImagesObjects().add(imagesObject);
}
}
if(checkBox.isChecked())
vinScannerHistoryModel.setKey("1");
else
vinScannerHistoryModel.setKey("0");
vinScannerHistoryModel.setPolygon(polygonAdapter.getItem(spinnerPosition).getId()+"");
vinScannerHistoryModel.setUserName(vinScannerModel.getName());
mRealm.commitTransaction();
}
我不知道什么是错误的,我怎样才能解决这个问题?
附笔
正如我所说,我是初学者领域编程,在您的选择中,删除数据库中的重复项是否正确
谢谢例外的文字很清楚,不是吗?您不能在事务内部启动事务
mRealm.beginTransaction();
RealmResults<VinScannerHistoryModel> rows =
realm.where(VinScannerHistoryModel.class)
.equalTo("userName", vinScannerModel.getName())
.equalTo("vinNumber", vinNumber.getText().toString())
.findAll();
if (rows != null) {
rows.clear();
}
....
....
mRealm.beginTransaction();
RealmResults行=
realm.where(VinScannerHistoryModel.class)
.equalTo(“用户名”,vinScannerModel.getName())
.equalTo(“vinNumber”,vinNumber.getText().toString())
.findAll();
如果(行!=null){
行。清除();
}
....
....
这是一个正确的答案。我自己解决了
RealmResults<VinScannerHistoryModel> results
= mRealm.where(VinScannerHistoryModel.class)
.equalTo("userName",vinScannerModel.getName())
.equalTo("vinNumber",vinNumber.getText().toString())
.findAll();
mRealm.beginTransaction();
if(results!=null)
results.clear();
RealmResults结果
=mRealm.where(VinScannerHistoryModel.class)
.equalTo(“用户名”,vinScannerModel.getName())
.equalTo(“vinNumber”,vinNumber.getText().toString())
.findAll();
mRealm.beginTransaction();
如果(结果!=null)
结果:清晰();
如何删除项目,然后添加新项目?先删除项目,然后添加新项目。我尝试先删除项目,然后添加新项目,但出现崩溃。您能否显示没有崩溃的代码?显示异常堆栈跟踪。mRealm.beginTransaction()
和mRealm.executeTransaction()
都启动一个新事务,除了executeTransaction()
还通过取消事务处理异常,而不仅仅是让它停留。至于“删除重复”?使用@PrimaryKey
以避免“重复”
RealmResults<VinScannerHistoryModel> results
= mRealm.where(VinScannerHistoryModel.class)
.equalTo("userName",vinScannerModel.getName())
.equalTo("vinNumber",vinNumber.getText().toString())
.findAll();
mRealm.beginTransaction();
if(results!=null)
results.clear();