렐름의 작동 방식을 이해하기 위해 수 표를 작성 중입니다. 이 예제에는 두 개의 모델 클래스가 있습니다. 하나는 User라고하고 다른 하나는 Task라고합니다. 따라서 각 사용자는 동일한 작업을 수행하게됩니다.렐름 데이터베이스에 오브젝트가 저장되지 않았습니다.
다음 두 모델 클래스가 있습니다.
public class User extends RealmObject {
@PrimaryKey
private String id;
private String firstName;
private String lastName;
private Task task;
private RealmList<Task> tasks;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Task getTask() {
return task;
}
public void setTask(Task task) {
this.task = task;
}
public RealmList<Task> getTasks() {
return tasks;
}
public void setTasks(RealmList<Task> tasks) {
this.tasks = tasks;
}
}
및
public class Task implements RealmModel, Comparable<Task> {
@PrimaryKey
private String id;
private String title;
private String description;
private boolean isCompleted;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public int compareTo(Task another) {
return 0;
}
public boolean isCompleted() {
return isCompleted;
}
public void setCompleted(boolean completed) {
isCompleted = completed;
}
}
지금 내 주요 조각에 내 데이터베이스에 해당 객체를 저장하기 위해 노력하고 있습니다.
public class MainFragment extends Fragment {
private static final String TAG = MainFragment.class.getSimpleName();
private Realm realm;
public MainFragment() {
}
public static MainFragment newInstance() {
Bundle args = new Bundle();
MainFragment fragment = new MainFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_main, container, false);
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// Only create a user if we don't have one.
if (realm.where(User.class).count() == 0) {
User u = realm.createObject(User.class);
u.setFirstName("Theo");
u.setLastName("Tziomakas");
u.setId(UUID.randomUUID().toString());
}
}
});
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
User u = realm.where(User.class).findFirst();
Task t = realm.createObject(Task.class);
t.setTitle("Test Task");
t.setDescription("Foo Bar");
u.getTasks().add(t);
}
});
User u = realm.where(User.class).findFirst();
Log.d(TAG, u.getTask().getTitle());
}
@Override
public void onDestroy() {
super.onDestroy();
realm.close();
}
}
내가 얻을 응답은 다음과 같습니다 제가 1.2.0 영역 버전을 사용하고
C:\Users\Theo\AndroidStudioProjects\ReamTutorial2\app\build\generated\source\apt\debug\io\realm\UserRealmProxy.java
Error:(349, 66) error: cannot find symbol variable TaskRealmProxy
Error:(183, 17) error: cannot find symbol variable TaskRealmProxy
Error:(338, 65) error: cannot find symbol variable TaskRealmProxy
Error:(187, 17) error: cannot find symbol variable TaskRealmProxy
Error:(471, 75) error: cannot find symbol variable TaskRealmProxy
Error:(400, 70) error: cannot find symbol variable TaskRealmProxy
Error:(390, 69) error: cannot find symbol variable TaskRealmProxy
.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
classpath "io.realm:realm-gradle-plugin:1.2.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
어떤 아이디어가 잘못되었을 수 있습니까?
감사합니다,
테오.
1)
public class Thing extends RealmObject {
2)
@RealmClass
public class Thing implements RealmModel {
:
당신의 영역 모델 클래스에 작업 할 수있는 주석 프로세서 위해서는
https://github.com/realm/realm-java/issues/964 –
왜 태스크가 실제 오브젝트를 확장하지 않는지 궁금하십니까? –
문서에 따르면'RealmModel'을 구현하는 클래스에 대해'@ RealmClass' 주석을 추가해야합니다. – Michael