搜索了几个小时,但我陷入了使用JPA的PlayFramework学习的困境。我正在建立一个示例网站,可以在其中发布帖子。但是这些帖子可以具有以下状态:
这些状态存储在单独的表中。显然,州立草稿 尚不可见。
所以我有这些课:
在我的网页课程中,我有:
@Column(name="POSTS_REF") @Where(clause="PostPublished") private List<Posts> userPosts;
但这是行不通的!因此,如何指定where子句,以仅加载处于发布状态的帖子而无需使用JPQL?
谢谢!
更新时间:2011-10-11
表格:带有栏的 帖子 :-id-标题-state_ref(引用国家ID表)-内容
表: 美国 与列: - 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;
UPDATE 2012-02-13 Emt的回答毕竟对我有用。
尝试类似的方法:
@Column(name="POSTS_REF") @Where(clause="state='PostPublished'") private List<Posts> userPosts;
要么
@Column(name="POSTS_REF") @Where(clause="PostPublished=true") private List<Posts> userPosts;
取决于您Post实体的状态字段类型。
Post