【发布时间】:2016-08-03 07:58:52
【问题描述】:
在 android 中使用 Sqlite 作为 DB 时,我们中的许多人创建了一个像 DbConstants 这样的类,我们将所有表名、列名保存为常量。
对于 Realm DB,我们准备 POJO 类,它们分别表示为表和字段作为列名。
有什么方法可以避免在这里创建另一个常量文件吗?
用例:
代表用户表的POJO:
public class User extends RealmObject {
private String name;
private int age;
@Ignore
private int sessionId;
// Standard getters & setters generated by your IDE…
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public int getSessionId() { return sessionId; }
public void setSessionId(int sessionId) { this.sessionId = sessionId;
}
}
所以当我们如下查询用户表时:
RealmResults<User> result = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
我不想在这里使用像“name”这样的字面量。那么还有其他优雅的解决方案或最佳实践吗?
【问题讨论】:
-
您的 setter/getter 表明您不熟悉 Lombok:projectlombok.org/features/GetterSetter.html
-
@MarcinOrlowski POJO 直接来自 Realm 文档 :)。虽然我的没有什么不同。感谢您提供有趣的链接!