Поиск в течение нескольких часов, но я застрял в моей кривой обучения для PlayFramework с JPA. Я создаю образец веб-сайта, на котором можно создавать сообщения. Но эти сообщения могут иметь состояния:
- PostDraft (сообщение - черновик, не публикуется)
- PostPublished (публикация может быть опубликована)
Эти состояния хранятся в отдельной таблице. Очевидно, что проекты государственных сообщений еще не должны быть видны.
Итак, у меня есть следующие классы:
- Класс страницы (получение информации о странице из таблицы, 1 страница может содержать несколько сообщений)
- Класс сообщений (сообщения могут быть в черновике и опубликованы)
В моем классе страницы у меня есть:
@Column(name="POSTS_REF")
@Where(clause="PostPublished")
private List<Posts> userPosts;
Но это не работает! Итак, как я могу указать предложение where, загружать только сообщения, находящиеся в опубликованном состоянии, без использования JPQL?
Спасибо!
ОБНОВЛЕНИЕ: 2011-10-11
Таблица: Сообщения с колонками: - Я бы - заглавие - state_ref (ссылка на таблицу ID государств) - содержание
Таблица: Состояния с столбцами: - Я бы - statename
Итак, я хочу сказать что-то вроде:
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 Ответ Emt работал у меня в конце концов.