1

我目前正在使用 JPA 的 playframework 1.2.4 为我和我的朋友编写一个板。一切都很好,直到我来到视图机制。

问题是,每个用户都可以有多个视图条目。每个主题也可以有多个视图条目,所以这是我的视图模型:

@Entity
public class ForumTopicView extends Model
{

    @Required
    @ManyToOne
    public ForumTopic   topic;

    @Required
    @ManyToOne
    public User         user;

    @Required
    public Date         viewDate;

}

另一方面,一个主题和连接的用户只有一个视图。

这是我的主题模型:

@Entity
public class ForumTopic extends Model
{

    // ...

    @OneToOne(mappedBy = "topic") // TODO: and the connected user
    public ForumTopicView       view;

    // ...
}

我如何自定义用户必须是连接用户并且对于每个主题只有一个选择的视图。

谢谢你的帮助!!核磁共振

@Yogendra Singh:是的,没错。每个用户都可以查看一个主题。

4

1 回答 1

3

如果关联的一侧是多对一,另一侧必须是单对多,而不是单对一。

每个主题都有多个视图(其中一个视图是针对当前用户的)。每个用户都有多个视图(其中一个视图用于给定主题)。所以你有两个 OneToMany/ManyToOne 关联。

目前尚不清楚您想做什么,但我认为您需要执行查询才能获得所需的内容。如果您想要的是与当前用户关联并对应于给定主题列表的视图列表,那么查询就是

select view from ForumTopicView view
where view.user = :currentUser
and view.topic in (:listOfTopics)

如果您有 50 个主题,则无需 50 个查询。上面的一次检索所有视图。

于 2012-10-11T21:39:41.270 回答