Как использовать @Where в Hibernate

Искал несколько часов, но я застрял на кривой обучения PlayFramework с JPA. Я создаю пример веб-сайта, где можно делать сообщения. Но эти посты могут иметь состояния:

PostDraft (опубликовать черновик, не публиковать)Сообщение опубликовано (сообщение можно опубликовать)

Эти состояния хранятся в отдельной таблице. Очевидно, проект государственных постовпока не должно быть видно

Итак, у меня есть эти классы:

Класс страницы (получение информации о странице из таблицы, 1 страница может иметь несколько сообщений)Класс постов (посты могут быть как черновыми, так и опубликованными)

В моем классе страницы у меня есть:

@Column(name="POSTS_REF")
@Where(clause="PostPublished")
private List<Posts> userPosts;

Но это не работает! Итак, как я могу указать предложение where, чтобы загружать только сообщения, которые находятся в опубликованном состоянии без использования JPQL ??

Спасибо!

ОБНОВЛЕНИЕ: 2011-10-11

Таблица:Сообщений с колонками: - id - title - state_ref (ссылка на таблицу идентификаторов состояний) - content

Таблица:состояния с колонками: - 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 Ответ Эмта сработал для меня в конце концов.

Ответы на вопрос(3)

Ваш ответ на вопрос