0

如果您有一个用户实体,您可以通过两种方式存储他/她的地址。您可以直接将所有字段存储在用户对象中 - 或者 - 您可以创建一个地址对象,该对象保存在单独的表中并加入用户(或级联,或其他)并放入用户实体内的地址对象.

做后者有什么好处?如果你可以在一张桌子上放更多东西,那不是最有意义的吗?我认为后者最终会导致更多的资源使用。我知道它对于其他事情可能更实用,但这个例子特别提到了你可以做的情况。

如果您做了类似于我上面描述的事情,那么您通常会为用户使用 IdClass 吗?

对于 IdClass,每个字段都必须只是另一个实体的键,还是您可以在其中添加具体或临时字段?@IdClass 的用法只是说期望多个 Id 注释,其余的取决于您吗?

谢谢!

4

1 回答 1

1

您的用户与地址的关系应该是多对一的。因为一个用户可能有两个地址。如果要将地址对象放入用户对象中,则用户只能拥有一个地址。在用户对象中有地址字段也有这个问题。因此,您的两个建议都不是最佳实践。

无需为 User 实体使用 IdClass,您可以简单地通过注释使用数据库本机 id 生成。`@Id @GeneratedValue(strategy=GenerationType.IDENTITY)。

于 2012-06-27T04:26:34.453 回答