【发布时间】:2017-06-01 21:37:59
【问题描述】:
我正在尝试学习休眠 api。我很难处理人际关系以及应该如何使用它们。
考虑以下示例。 我们有两张表,Owners 和 Cars。我们假设一辆汽车只能由一个人拥有,因此汽车与车主是多对一的关系。
现在一个普通的 SQL 数据库应该是这样的。
|------------| |------------|
| Owner | 1 ------------------- N | Car |
|------------| |------------|
| id | | id |
| name | | model |
|------------| | car_id |
|------------|
当我尝试使用注释来编写实体时,困难的部分就来了。
尤其是 Car 实体。
我的问题有两个:
1.汽车类实体应该有一个叫carId的long字段还是应该是Owner owner字段?
2.我还应该在两个实体中包含一对多和多对一关系还是只需要一个。
提前谢谢你。
【问题讨论】:
-
我认为
Car应该有一个owner_id而不是car_id。原因:我想你想用它来表达外键,因为Car已经有id作为主键。现在,我希望外键以外部实体命名,即Owner。 -
整数 ID 是一种用于加快查询速度的数据库技巧,而不是对象模型的一流部分。对象模型中的关系是对象类型之间的关系,而不是它们的人工 ID,如这里的答案所示。实体
equals和相关方法(hashCode等)应根据对象的键值或数据库术语自然键来编写。