13. @Table(name="rooms")
public class Room extend Model {
@Column(name="_id", index=true, unique=true)
public long _id;
@Column(name="name")
public String name;
}
De?ne
14. Use
Room room = new Room();
room._id = 100l;
room.name = "Room name";
room.save();
25. 2. Logic → Service Layer
RealmObject にはロジックを置けない
http://ja.wikipedia.org/wiki/海老名サービスエリア#mediaviewer/File:Ebina-SA-Nobori.JPG
26. @Table(name="rooms")
public class Room extend Model {
@Column(name="name")
public String name;?
……
public void sendChat(String message) {
// Send chat logic
}
}
// room.sendChat("Your message");
AA
27. Realm
public class RoomService {
……
public static void sendChat(long roomId,
String message) {
// Send chat logic
}
}
// RoomService.sendChat(100, "Your message");
28. 3. Thread をまたがない
Realm X は Thread ごとに参照する
http://upload.wikimedia.org/wikipedia/commons/2/21/Naisten_400_m_aidat.jpg
29. long roomId = 100;
Room room = new Select().from(Room.class)
.where("_id = ?", roomId)
.executeSingle();
……
new Thread(() -> { // RetroLambda
// room を使った何か
}).start();
AA