객체가 영역에 존재하는 경우 먼저 두 조건이있는 메소드를 만들 필요가 있습니다. 존재하는 경우 반환하고, 생성하지 않은 경우 생성 한 다음 반환하십시오.자바에서 생성 된 후 영역 객체를 반환하는 방법
public RouteModel findOrInitById(final Long webId) {
Realm realm = null;
try {
realm = Realm.getDefaultInstance();
RouteModel routeModel = realm.copyFromRealm(
realm.where(RouteModel.class).equalTo("routeWebId", webId).findFirst());
if (routeModel != null) {
return routeModel;
} else {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Number currentIdNum = realm.where(RouteModel.class).max("routeId");
int nextId;
if (currentIdNum == null) {
nextId = 1;
} else {
nextId = currentIdNum.intValue() + 1;
}
RouteModel newRouteModel = new RouteModel.Builder()
.setRouteId(nextId)
.setWebId(webId)
.build();
realm.copyToRealmOrUpdate(newRouteModel);
}
});
//here i need to return the "new " object
}
} finally {
if (realm != null) {
realm.close();
}
}
return null;
}
쿼리없이 객체를 반환 할 수있는 방법이 있습니까?
필수이며, 데이터를 수정하는 다른 클라이언트를 가정해야, 난 그냥 내가 원하는 트랜잭션 내부의 새로운 영역 객체를 생성 쿼리없이 새 객체의 복사본을 반환하는 방법 – Spaceghost87