您能否描述在模型中代表實體的POJO中包含OID(通常爲數據庫行標識符)的優缺點?帶OID的值對象
其實我不是等在談論有關平等/哈希碼問題,我應該更好地描述我的問題(我的壞:))...
我們已經有了一些這些實體的代表業務對象的類(如產品,目錄等)。有時他們有一個'商業id',例如Product可以通過其獨特的ProductId(它有3個字段:id,type,repository)來找到。
在我們的數據庫中,Product表除了3個業務列(id,type,repository)之外,還有一個代理主鍵列(OID),以方便外鍵引用並減少聯接子句。
Product/ProductId類是我們公開給其他應用程序的API的一部分。因此,例如,他們可以打電話:
productManager.findProductById(ProductId productId);
的問題是,應該或不應該的OID包含在產品或產品編號類知道我們的客戶預計將使用產品ID標識。
優點:
我可以使用OID做另一個查找喜歡
Product p = productManager.findProductById(ProductId productId); Catalog c = productManager.findAllCatalogsContainingProduct(p.getOid());
我們正在使用的產品編號查找了很多應用程序,以便本每次往返數據庫時都會保存,以避免找到與ProductId匹配的OID。
缺點:
- 我剛剛曝光的OID到客戶端(讓我們希望他不使用它,而不是業務鍵!)
你可以列出其他優點和缺點?
我更新了我的問題,提供了更多信息:) – 2008-12-31 18:11:43