【发布时间】:2011-07-08 19:47:20
【问题描述】:
我正在尝试持久化我的数据,但在想出一个可以正常工作于 hibernate 的架构时遇到了麻烦
我有两个对象:频道和用户。用户与频道相关联,但在许多方面。它可以有 5 种特殊状态(并且可以分配多个)或正常。由于它是多对多关系(一个用户可以在多个频道中,一个频道有多个用户),这个问题变得复杂。
我的想法是有单独的频道和用户表,但有第三个大地图表。这个大地图表看起来像这样
--------------------------------------------------------------------------
| CHANNEL_ID | USER_ID | STATUS1 | STATUS2 | STATUS3 | STATUS4 | STATUS5 |
--------------------------------------------------------------------------
| 5 | 10 | 0 | 1 | 0 | 0 | 0 |
--------------------------------------------------------------------------
请注意,如果新用户加入频道,他们会获得一个新行。但是,如果他们获得新的状态,他们现有的行就会改变。
真正让我困惑的是如何在 Hibernate 中实现类似的东西。我有类似的东西,但我已经玩了这么久(现在 2 天)我什至不知道它做了什么。
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "quackbot_user_map", joinColumns = {
@JoinColumn(name = "USER_ID")}, inverseJoinColumns = {
@JoinColumn(name = "STATUS1")})
protected Set<UserDAOHb> status1s;
- 有没有更好的方法来做到这一点?
- 我是否应该使用表示表的专用地图对象并使用它进行查询?
【问题讨论】:
标签: java hibernate hibernate-mapping