这是一个纯粹的理论问题。假设我有一个实体 Foo 链接到另一个实体 Bar。显然,两者都被分配了一个唯一的 id,持久性系统使用它来链接它们。我的 Foo 实体类应该引用 Bar 对象还是 Bar 对象 ID?在代码中:
class Foo {
int id;
Bar bar;
}
或
class Foo {
int id;
int barId;
}
这是一个非常基本的问题,但我找不到令人满意的答案。 This question见解很少。
我的看法是,使用引用更符合 OOP 哲学,但如果不使用延迟加载,很容易产生空引用和性能问题。另一方面,使用 id 会更快更容易,但会很快导致数据不一致。
那么应该做什么以及为什么?
- 始终使用 id
- 始终使用引用
- 取决于型号
如果它取决于,是否有实体大小、“深度”、模型复杂性等决策因素......?或者只是测试两者的问题?
还有人可以指点我一些关于这个问题的文献引用吗?
最佳答案
我的经验是我总是需要外键,所以至少我需要:
class Foo {
int id;
int barId;
}
包括对 Bar 的引用取决于应用程序。如果您使用的是 ORM,那么 Foo 可以将 Bar 引用作为直接或惰性关系:
class Foo {
int id;
int barId;
Bar bar;
}
关于java - 具有持久性的实体类中的 Id 与引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132910/