JDO Relationships - App Engine - PullRequest
       2

JDO Relationships - App Engine

0 голосов
/ 15 марта 2011

Я бы хотел реализовать простую систему категорий для моих рецептов.

Вот мой объект Recipe:

@PersistenceCapable
public class Recipe {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
    @Persistent
    private List<Category> categories;

    public Recipe(List<Category> categories) {
        this.categories = categories;
    }
    ...
}

И мой объект Category:

@PersistenceCapable
public class Category {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
    @Persistent
    private String name;

    public Category(String name) {
        this.name = name;
    }
    ...
}

Теперь, как вы можете видеть, ассоциация проста.Когда я создаю Recipe, я создаю его со списком категорий.Это замечательно.На моем сайте я могу просто перебрать список Recipe (или любой другой), а затем просто набрать на нем .getCategories(), чтобы получить нужные мне категории.

Однако, скажем, я хочу получить все категории вхранилище данных, и когда я нажимаю на одну категорию, я хочу иметь возможность получить все рецепты для этой категории.Что проще всего сделать по этому поводу?

Чтобы показать все категории, которые у меня есть: select from Category.class group by name.Но как мне получить все рецепты в данной категории?Мой дизайн для JDO несовершенен?

1 Ответ

2 голосов
/ 15 марта 2011

ВЫБРАТЬ ИЗ mydomain.Recipe WHERE category =: category

Не знаю, что это за идея с "недостатками для JDO" ... JDO просто обеспечивает прозрачное постоянство и позволяет создавать свои классы так, как вы хотите.

...