Искал несколько часов, но я застрял в своей кривой обучения PlayFramework с JPA. Я создаю пример веб-сайта, где можно делать сообщения. Но эти посты могут иметь состояния:
- PostDraft (опубликовать черновик, не публиковать)
- Сообщение опубликовано (публикация может быть опубликована)
Эти состояния хранятся в отдельной таблице. Очевидно, черновик государственных постов пока не должен быть виден.
Итак, у меня есть эти классы:
- Класс страницы (получение информации о странице из таблицы, 1 страница может иметь несколько сообщений)
- Класс сообщений (сообщения могут быть в черновике и опубликованы)
В классе моей страницы у меня есть:
@Column(name="POSTS_REF")
@Where(clause="PostPublished")
private List<Posts> userPosts;
Но это не работает! Итак, как я могу указать предложение where, чтобы загружать только сообщения, которые находятся в опубликованном состоянии без использования JPQL ??
Спасибо!
ОБНОВЛЕНИЕ: 2011-10-11
Таблица: Посты с колонками:
- Я бы
- заглавие
- state_ref (ссылка на таблицу идентификаторов состояний)
- содержание
Таблица: Состояния со столбцами:
- Я бы
- имя
Итак, я хочу сказать что-то вроде:
select *
from posts inner join states on posts.state_ref = states.id
where states.statename = 'PostPublished'
ОБНОВЛЕНИЕ 2011-10-13
Это моя текущая модификация в классе моей страницы: но она тоже не работает.
/** link to the states */
@JoinColumn(name = "STATES_REF")
@OneToOne
@Where(clause = "states.statename = 'PostPublished'")
public MyState state;
ОБНОВЛЕНИЕ 2012-02-13
В конце концов, ответ Эмта сработал для меня.