【发布时间】:2010-12-30 23:35:59
【问题描述】:
好的,我不知道该怎么说。但是这里有。
假设我有一个包含电影和 user_movie 表的数据库,movie 保存有关任何给定电影的信息,user_movie 保存有关用户与电影的关系的信息。
因此,当用户在给定电影上设置“已观看”值时,这会导致 user_movie 中的表记录。但是,如果用户没有将任何电影设置为已观看,那么这将意味着没有电影被观看并且没有记录被设置。所以这个逻辑已经到位。 (现在我总是可以为每个用户创建一个默认记录乘以电影数量。但这不会很有效。)
因此,当我尝试创建类似查询时,请获取用户未观看的所有电影。那应该返回我数据库中所有电影的列表。但是,由于 user_media 不包含任何记录,它实际上会给我一个空列表。
那么有什么我可以在这里使用的解决方案吗?
如果实体不存在,是否可以让休眠返回“默认”实体?或者如果是“左连接”并且连接值为 NULL,我可以返回默认值吗?
我当前的后端是 mysql。也许我可以创建一个自定义函数来处理这个问题?
编辑
user_media 还可以保存获取 (true,false)、愿望清单 (true,false)、情感 (LOVE,HATE,NULL) 等值
我的解决方案的一个要求是我得到一个 user_media 列表加入电影。因此 user_media 不能为 NULL。
【问题讨论】:
-
在用户看过一些电影的情况下,如何获取用户未看过的所有电影的列表?应该有一个查询可以处理这两种情况。
-
可能是这样的? from Movie where id in (select movie_id from UserMedia where waiting = false and user_id = x), seen 只是 user -> movie 关系中的值之一,还有其他值,如,acquired (true,false),emotion (爱,恨,空),愿望清单(真,假)
标签: mysql database hibernate null entity