【发布时间】:2016-01-29 15:45:00
【问题描述】:
我目前正在开发一个系统,用户可以在其中将任意数量的技能添加到他们的个人资料中,并为每个人分配一个等级,以显示他们的能力有多先进。系统还允许他们添加描述。
这些是我的数据库表。技能的名称可以是编程语言或其他相关事物。
这是一个带有 Hibernate 的 Spring MVC 项目。 Skill_user 表中的 ID 是其他两个表的外键。一个用户可以拥有 0-* 个技能,一个技能可以分配给 0-* 个用户。
用户
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | smallint(6) | NO | PRI | NULL | auto_increment |
| email | varchar(75) | NO | | NULL | |
| password | varchar(64) | NO | | NULL | |
| permission | tinyint(4) | NO | | 1 | |
| verified | tinyint(1) | NO | | 0 | |
| blocked | tinyint(1) | NO | | 0 | |
+------------+-------------+------+-----+---------+----------------+
技能
+-----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+----------------+
| id | smallint(6) | NO | PRI | NULL | auto_increment |
| name | varchar(45) | NO | | NULL | |
+-----------------+-------------+------+-----+---------+----------------+
技能用户
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| user_id | smallint(6) | NO | PRI | NULL | |
| skill_id | smallint(6) | NO | PRI | NULL | |
| rating | tinyint(1) | NO | | NULL | |
| descripton | varchar(250) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
请注意,skill_user 除了外键之外还有许多字段。
现在,我想要一个 Java 类作为 Hibernate 的模型,但不想为 Skill_user 创建单独的模型。这将允许我管理来自用户类的技能,因为理想情况下我的用户类具有以下方法:
void addSkill(Skill s)
Set<Skill> getSkills()
void setSkills(Set<Skill> s)
评分和描述的获取器和设置器将在技能模型中提供。
希望我的解释很清楚,对此的任何帮助表示赞赏。
提前感谢您的回答,如果需要更多信息,请务必询问。
【问题讨论】: