0

我试图通过制作一个毫无意义的应用程序来教自己休眠,该应用程序包含我的本地酒吧列表,用户可以标记访问或不访问,所以基本上是一个花哨的勾选列表。

如果我使用原始 sql 编写此代码,我将有一个 pubs 表、一个用户表和一个连接表,该表将其他两个表中的 id 链接起来,以防某个 pub 已被标记为为特定用户访问。

我用来获取指定用户的已访问状态的完整列表的查询将是这样的(在 postgres 中)

SELECT *, (CASE WHEN up.id IS null THEN 0 ELSE 1 END) AS visited 
FROM pubs p  
LEFT JOIN users_pub up ON p.id = up.pubId

我试图弄清楚如何注释我的模型类以显示这个访问的属性。想法?

对于初学者来说,hibernate 文档可能非常笨拙,因此即使朝正确的方向轻推也会受到赞赏。非常感谢。

4

1 回答 1

0

对此进行建模的最简单方法是一个User具有@ManytoMany集合的类Pub,因此您可以读取用户并获取他们访问过的酒吧的集合。

那么在 User 上实现一个方法就很容易了,比如:

hasVisitedPub(id)

如果该 pub 在他们的pubsVisited集合中,则返回 true。

Map<id, Pub>如果您想让访问过大量酒吧的人更有效地查找,请使用 a ,因为他们应该这样做 :-)

于 2012-08-11T04:08:47.313 回答