Я пытаюсь перенести свое приложение из PHP и RDBMS (MySQL) в Google App Engine, и мне сложно разобраться с моделью данных и связями в JDO.В моем текущем приложении я использую множество запросов JOIN, таких как:
SELECT users.name, comments.comment
FROM users, comments
WHERE users.user_id = comments.user_id
AND users.email = 'john@example.com'
. Как я понимаю, запросы JOIN не поддерживаются таким образом, поэтому единственный (?) Способ хранения данных - использование неиспользуемых отношений изарубежные "ключи.Есть документация по этому поводу, но нет полезных примеров.Пока у меня есть что-то вроде этого:
@PersistenceCapable
public class Users {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String name;
@Persistent
private String email;
@Persistent
private Set<Key> commentKeys;
// Accessors...
}
@PersistenceCapable
public class Comments {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String comment;
@Persistent
private Date commentDate;
@Persistent
private Key userKey;
// Accessors...
}
Итак, как мне получить список с именем, комментарием и датой комментатора в одном запросе?Я вижу, как я, вероятно, мог бы сойти с 3 запросов, но это кажется неправильным и создаст ненужные накладные расходы.Пожалуйста, помогите мне с некоторыми примерами кода.
- Пол.