gpt4 book ai didi

hibernate - 如何在 Hibernate 中使用 @Where

转载 作者:行者123 更新时间:2023-12-03 21:59:08 24 4
gpt4 key购买 nike

搜索了几个小时,但我陷入了使用 JPA 进行 PlayFramework 的学习曲线。我正在建立一个可以发布帖子的示例网站。但是这些帖子可以有以下状态:

  • PostDraft(帖子为草稿,请勿发表)
  • PostPublished(可以发布帖子)

  • 这些状态存储在单独的表中。显然,草案状态帖子 应该还不可见。

    所以我有这些类(class):
  • 页面类(从表格中获取页面信息,1页可以有多个帖子)
  • 帖子类(帖子可以在草稿和发布)

  • 在我的页面类中,我有:
    @Column(name="POSTS_REF")
    @Where(clause="PostPublished")
    private List<Posts> userPosts;

    但这不起作用!那么,如何指定 where 子句,仅加载处于已发布状态的帖子而不使用 JPQL?

    谢谢!

    更新:2011-10-11

    表:带有列的帖子:
    - ID
    - 标题
    - state_ref(引用States表的ID)
    - 内容

    表:具有列的状态:
    - ID
    - 州名

    所以我想说:
    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 的回答对我有用。

    最佳答案

    尝试类似:

    @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 上的状态字段类型实体。

    关于hibernate - 如何在 Hibernate 中使用 @Where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7700071/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com