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;
}
Define
14.
Use
Room room = new Room();
room._id = 100l;
room.name = "Room name";
room.save();
20.
1. AA Model → Realm Bean
AA Model から Realm 指定の Bean に
http://ja.wikipedia.org/wiki/ネジレフサマメノキ#mediaviewer/File:Parkia_speciosa.JPG
21.
AA
@Table(name="rooms")
public class Room extend Model {
@Column(name="_id", index=true, unique=true)
public long _id;
@Column(name="name")
public String name;
}
22.
public class Room extend RealmObject {
@PrimaryKey private long roomId;
private String name;
public void setRoomId(long roomId) {
this.roomId = roomId;
}
public long getRoomId() {
return this.roomId;
}
// name も同様に getter / setter を準備
}
Realm
23.
AA
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
Be the first to comment